Odczyt z pliku.

0

Witam.
Napisałem sobie metodę odczytującą linia po linii dane z pliku. I wszystko jest okej. Jednak ja w pliku mam tylko dane w postaci liczb całkowitych oddzielonych spacja i enterem. Zamieniłem więc

linia = raf.readLine())!=null

na linia = raf.readInt())!=100

 ale wtedy wyświetla mi się to w jakiejś dziwnej postaci. Np. plik jest taki:

2 3 20
1 2
1 1

a dostaje coś takiego:

840971040
842009866
824193549

tu kod programu, który odczytuje po lini:

```java
import java.io.*;


public class Main {
			
	public void odczyt(String plik){
		File plikDoOdczytu = new File(plik);
		
		RandomAccessFile raf = null;
		try{
			raf = new RandomAccessFile(plikDoOdczytu, "r");
		}
		catch(FileNotFoundException e){
			System.err.print("Nie ma takiego pliku");
		}
		
		String linia ="" ;
		try{
			while((linia = raf.readLine())!=null){
				System.out.println(linia);
			}
			raf.close();
		}
		catch(IOException e){
			System.err.println("Błąd");
		}
	}
	
  public static void main (String args[]) {
	  Main glowny = new Main();
	  String plik="DA1";
	  glowny.odczyt(plik);
	  
	 
  }
}

i ten zmieniony kawałek

int linia =0 ;
		try{
			while((linia = raf.readInt())!=100){
				System.out.println(linia);
			}
			raf.close();
		}
0

zrobiłem tak:

StringTokenizer st = new StringTokenizer(linia," ");
				System.out.println(st.nextToken());

ale wczytuje tylko pierwsza kolumnę :( ?

0

Poradziłem sobie w taki sposób:

public void odczyt(String plik){
		 	int wartosc = 0;
		    FileReader fr= null;

		    try{
		        fr = new FileReader(plik);
		    }catch(FileNotFoundException e){
		           System.out.println("BŁĄD PRZY OTWIERANIU PLIKU!");
		           System.exit(1);
		    }

		    StreamTokenizer st = new StreamTokenizer(fr);
		     
		    try{
		       while((wartosc = st.nextToken()) != StreamTokenizer.TT_EOL ){
		            if(wartosc == StreamTokenizer.TT_NUMBER){  
		            	 int liczba =(int) st.nval;		            	 
		            	 System.out.println(liczba);
		             }
		         }
		    }
		    catch(IOException e){
		           System.out.println("BŁĄD ODCZYTU Z PLIKU!");		            
		     }
		    try{
		    	fr.close();
		    }
		    catch(IOException e){
		          System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
		    }
	}

Tylko nie wiem czemu wczytują mi się wszystkie linie pliku, a mam TT_EOL czyli kiedy został osiągnięty koniec linii.

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