Scanner.nextline zwraca ściężkę do pliku zamiast danych

0

Potrzebuję napisać prostą metodę do wczytywania hasła z pliku. Ścieżka do pliku jest poprawna i plik istnieje, nie wiem czemu obiekt scanner zamiast linijek z pliku wczytuje jego adres?

private static String readPasswordFile(String host, String port, String username, String database) {
		
		String password = null;
		String line = null;
		String appDataRoot = System.getenv("APPDATA");
		String passFileRoot = appDataRoot + "\\postgresql\\pgpass.conf";
		Scanner file = new Scanner(passFileRoot);
		while(file.hasNextLine()){
			line = file.nextLine();
			if (line.matches(host + ":" + port + ":(.*):" + username + ":(.*)")){
				if (line.matches("(.*):(.*):*:(.*):(.*)")) {
					password = line.replaceFirst("(.*):(.*):*:(.*):", "");
				}
				if (line.matches("(.*):(.*):"+ database +":(.*):(.*)")) {
					password = line.replaceFirst("(.*):(.*):*:(.*):", "");
				}
			}
		}
		file.close();
		System.out.println(appDataRoot);
		
		return password;
	}
0

Spróbuj zrobić tak jak tutaj:
http://stackoverflow.com/questions/13185727/reading-a-txt-file-using-scanner-class-in-java
Twórz obiekt Scanner'a z konstruktorem który przyjmuje File.

0

O faktycznie podziałało, dzięki :) Co za dziadostwo dają konstruktory do użytku, które nie działają i potem wróżenie z kuli czemu. :P

1

Głupoty pieprzysz, oba konstruktory działają. Po użyciu konstruktora

new Scanner("abrakadabra.txt");

skanowany jest String abrakadabra.txt, po użyciu konstruktora

new Scanner(new File("abrakadabra.txt"));

skanowany jest plik o nazwie abrakadabra.txt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1