Just nu i M3-nätverket
Gå till innehåll

Inläsning från fil


Yoshi

Rekommendera Poster

Hej

Har data på formen int;int;int;int ny rad i en textfil och vill läsa in den till olika intvariabler i mitt program. Finns det något smidigt sätt att göra det i java typ en parser eller måste man läsa tecken för tecken i strömen för att hitta separeringstecknet.

Hänvinsnigar till exempel och doc uppskattas

mvh

Yoshi

 

Länk till kommentar
Dela på andra webbplatser

-Patrik Johansson-

Hej.

Så länge som det är text(ren text) så kan du göra så här.

Skapa en BufferedReader:

BuffferedReader reader = new BufferedReader(new FileReader("filnamn.txt"));

 

Så då kan du använda en whileloop för att läsa in hela filen:

boolean done = false;

while (!done) {
String nyRad = reader.readLine();

if (nyRad == null) {
done = true;
}
}

Sedan gör vi en parser, en StringTokenizer inuti while-loopen. Sedan läser man in med tok.nextToken. Detta retunerar en sträng.

StringTokenizer tok = new StringTokenizer(nyRad, ";");
int a = Integer.parseInt( tok.nextToken());
int b = Integer.parseInt( tok.nextToken());
int c = Integer.parseInt( tok.nextToken());
int d = Integer.parseInt( tok.nextToken());

Man kan göra parsen(StringTokenizern) bättre genom att använda den i whileloop och då kolla med tok.hasNext() om det finns en ytterligare sträng att retunera.

 

Mer om BufferedReader:

http://java.sun.com/j2se/1.4.1/docs/api/java/io/BufferedReader.html

Mer om StringTokenizer:

http://java.sun.com/j2se/1.4.1/docs/api/java/util/StringTokenizer.html

 

Glöm inte bort att du måste fånga exceptions från både BufferedReader och StringTokenizer.

 

/Neox -(Patrik J)

"Gravitation can not be held responsible for people falling in love"
- citat av Albert Einstein

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...