Java Scanner - czytanie z pliku i wyjątek

Java Scanner - czytanie z pliku i wyjątek
Quentin
  • Rejestracja:około 16 lat
  • Ostatnio:prawie 4 lata
  • Postów:23
0

Próbuję wczytać dane z pliku o następującym formacie:

c00004;Doe John;bananas;4.0;50.0
c00003;Doe John;milk;4.0;5.0
c00001;Doe John;milk;4.0;10.0
c00001;Doe John;milk;5.0;2.0

za pomocą takiego kodu:

Kopiuj
Scanner in = new Scanner(Paths.get(fileName));
in.useDelimiter(";|\\s+");
		
while(in.hasNext())
{
	String customerID = in.next();
	String surname = in.next();
	String firstName = in.next();
	String productName = in.next();
	double price = in.nextDouble();
	double quantity = in.nextDouble();
			
	Purchase newPurchase = new Purchase(customerID, surname, firstName, productName, price, quantity);
	purchases.add(newPurchase);
}
		
in.close();

Podczas wczytywania pierwszej liczby double, a więc podczas próby przypisania wartości do zmiennej "price" dostaję wyjątek "java.util.InputMismatchException". Co ciekawe na innym systemie Windowsa ten wyjątek nie występuje i wszystko wczytuje się prawidłowo... Ma ktoś jakieś pomysły czemu zawdzięczam ten wyjątek?

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
1

Klasa Scanner respektuje ustawienia lokalne. Jeśli masz pewność, że zawsze speratorem dziesiętnym będzie kropka, to wystarczy

Kopiuj
in.useLocale(new Locale("en"));

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.