@Override
	public boolean existUser(String Username) {

		logger.trace("Comprobando si existe usuario:" + Username);

		if (Username == null || Username.isEmpty()) {
			logger.error("Argumento nulos.");
			throw new IllegalArgumentException("Argumento nulos.");
		}

		boolean check = false;

		try {
			// Abrimos el fichero.
			BufferedReader br = new BufferedReader(
					new FileReader(getFilePath()));
			String line = br.readLine();
			String temp;
			int result;
			while (line != null && !check) {

				// Obtenemos la tupla de valores del username
				temp = line.split(";")[0];

				// comprobamos que no sea nula y que la clave sea Username
				if (temp != null
						&& temp.split(":")[0].equals(FieldUser.Username
								.toString())) {
					// llegados aqui tendremos en el temporal el username
					temp = temp.split(":")[1];
				} else {
					logger.error("Ordenacion en el fichero de usuarios erronea.");
					throw new IllegalStateException(
							"Ordenacion en el fichero de usuarios erronea.");
				}

				// comprobamos si los username coinciden
				result = temp.compareTo(Username);
				if (result == 0) {
					check = true;
				} else if (result > 0) {
					// no se encontro la cadena, ya que en caso de estar deberia
					// estar antes que la linea actual.
					break;
				}

				line = br.readLine();
			}

			br.close();
		} catch (Exception e) {
			logger.error("Error manipulando en fichero de usuarios. ", e);
			throw new IllegalStateException(
					"Error manipulando en fichero de usuarios. ");
		}

		return check;
	}