2016-09-21 5 views
-2

Information.txt:Java - Auslesen von Informationen aus einer Textdatei

//FNAME LNAME ADDRESS CITY STATE OCCUPATION 

John Doe 1234 North Road New York New York Student 
Joe Tommy 5678 South Lane Buffalo New York Teacher 

Ich versuche, Java zu verwenden, um eine Datei (eine Textdatei um genau zu sein) und erhalten Informationen zu lesen, basierend auf der Position der Text in der Datei.

Angenommen, ich rufe eine Methode, um die Adresse einer Person aus der Datei zu erhalten, würde ich nur "1234 North Road" wollen. Aber sagen wir, ich möchte ihren Namen, also rufe ich eine andere Methode an, die "John Doe" geben würde. Das Problem ist, ich weiß nicht, wie man Informationen basierend auf seiner Position in der Datei erhält.

Ich denke über einen BufferedReader nach, aber ich weiß nicht genau, was das tut. Alle Hilfe wird geschätzt.

+1

Ich kann das nicht lesen, da es unmöglich ist, wo jedes Feld beginnt und endet zu wissen, so dass es unmöglich wäre, für ein Programm, es zu lesen. – Andreas

+0

Ein gepufferter Leser kann Textdateien gut lesen, Sie könnten die Datei Zeile für Zeile lesen. Aber die Frage wäre, wie ist Ihre Datei begrenzt? Ist es tabulatorgetrennt, oder haben die Felder eine feste Zeichenlänge? Wenn es Leerzeichen enthält, haben Sie Probleme, da Ihre Datenfelder bereits Leerzeichen enthalten. Versuchen Sie etwas und aktualisieren Sie die Frage mit spezifischen Problemen. – user3745362

Antwort

0

Der beste Weg ist ein Trennzeichen in der Textdatei hinzuzufügen. Beispiel.

John Doe | 1234 Nordstraße | New York New York | Student

Joe Tommy | 5678 South Lane | Buffalo New York | Lehrer

Beispielcode:

 String dirFile = "C:\\myfile.txt"; 
     FileReader fr = new FileReader(dirFile); 
     BufferedReader br = new BufferedReader(fr); 
     String line = null; 
     while ((line = br.readLine()) != null) { 
       String[] sep = line.split("\\|"); 
       String name = sep[0].trim(); 
       String address = sep[1].trim(); 
       String cities = sep[2].trim(); 
       String category = sep[3].trim(); 
     } 
Verwandte Themen