Sposoby wczytania danych z długiego pliku

0

Mam pytanie. Jakie są w javie sposoby odczytu danych z pliku ?

Mam plik który składa się z 675 400 znaków w 7733 linijkach.

Plik wczytuje tak:

File file = new File("dane.dat");
		String zdanie;
		Scanner in = new Scanner(file);

                  int i =0;
		
		while(in.hasNextLine())
		{
			
		
		zdanie=in.nextLine();
		System.out.println(zdanie);
		i++;
		}

		System.out.println(i); // wczytuje tylko do 2536
			
		 }

Wartość i wynosi tylko 2536 a nie tyle ile plik ma linijek ;/

Co robię źle? Albo czy są jakieś inne sposoby wczytania pliku?
Po wczytaniu danych chce dane z każdej linijki wczytać do tablicy.

0

Przed chwilą odczytałem (poprawnie!) Twoją techniką plik, który miał 48 419 622 bajtów oraz 4 000 687 linijek. Zapewne mylisz się uważając, że Twój plik ma 7720 linii.

0

Dziwne ;/
Plik ma tyle wierszy ile podaje, pokazuje mi to edytor tekstu
user image
Chyba że to wina notatnika że pokazuje taką ilość.
ale znowu tym sposobem wczytują sie wszystkie wiersze. Tylko dlaczego ten z pierwszego postu nie działa ?

{	
	FileReader fileReader = new FileReader("dane.dat");
		  BufferedReader bufferedReader = new BufferedReader(fileReader);
		  
		
		  String textLine = bufferedReader.readLine();
		
			 
			
		
		
			
		  do {
			   
		System.out.println(textLine);
			
			  
			    
		
		    textLine = bufferedReader.readLine();
		  
		  } while(textLine != null); 
		    
		 

		  bufferedReader.close();
}
0

Dość intrygujące, bowiem klasa Scanner uwzględnia wszystkie końce wiersza ("\r\n","\r" i "\n"). Możesz jakoś udostępnić ten źle odczytywany plik?

0

Plik podesłałem na pw

1

Przypomniałem sobie, że już się użerałem z klasą Scanner: metoda hasNextLine() od razu po otwarciu niepustego pliku zwracała false. Przyczyną było niewłaściwe kodowanie - plik zawierał polskie litery, był stworzony pod Windowsem, a otwierany pod Linuksem. W Twoim przypadku wystarczy użyć innego konstruktora

Scanner sc = new Scanner(new File("dane.dat"),"iso8859-1");

Jak sobie radzić z dowolnym plikiem kiedy charset jest nieznany, to nie wiem.

0

dodanie tego pomogło :P
Dzięki wielkie :P

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