Korzystając z klasy Scanner próbuje odczytać plik airports.txt
mający 9167 7733 wierszy.
Zacząłem od
String fileName = "airports.txt";
Scanner sc = new Scanner(new File(fileName));
Metoda hasNextLine
zwróciła true
tylko 2536 razy, a metoda nextLine
ostatni odczytany wiersz ucięła. Z wiersza
2604,"Senador Nilo Coelho","Petrolina","Brazil","PNZ","SBPL",-9.362411,-40.569097,1263,-`code>odczytała tylko`
2604,"Senador Nilo Coelho","Petrolina","Brazil","PNZ","
Potem eksperymentowałem z charsetem
Scanner sc = new Scanner(new File(fileName),"iso8859-1");
Scanner sc = new Scanner(new File(fileName),"iso8859-2");
Scanner sc = new Scanner(new File(fileName),"utf-8");
odczytuje dobrze.
Scanner sc = new Scanner(new File(fileName),"us-ascii");
Scanner sc = new Scanner(new File(fileName),"cp1250");
odczytuje źle.
Jak to wytłumaczyć, i, co ważniejsze, jak się uchronić przed takim częściowym odczytaniem pliku.