2017-02-15 3 views
-1

Ich habe Daten in meiner Textdatei in folgendem FormatParst und Lesen von Daten aus einer Textdatei

apple fruit 
carrot vegetable 
potato vegetable 

ich diese Zeile für Zeile und Split im ersten Raum lesen möge, und speichern Sie es in einem Satz oder Karte oder ähnliche Sammlungen von Java. (Schlüssel-Wert-Paare)

Beispiel: -
"apple fruit" sollte in einer Karte, auf die die key = apple und value = fruit gespeichert werden.

+0

Hallo und willkommen in SO. Es sieht so aus, als hättest du nicht viel Zeit in Forschung zu diesem Thema investiert, sonst hättest du eine Reihe von Beispielen gefunden. Wenn Sie immer noch denken, dass Sie Hilfe von der Community benötigen, stellen Sie bitte den Code Ihrer eigenen Lösung vor, den wir diskutieren und Verbesserungen vorschlagen können. Es ist unwahrscheinlich, dass jemand glücklich wäre, die komplette Aufgabe für Sie zu erledigen. –

Antwort

1

Die Scanner Klasse ist wahrscheinlich, was Sie suchen.

Als Beispiel:

Scanner sc = new Scanner(new File("your_input.txt")); 
while (sc.hasNextLine()) { 
    String line = sc.nextLine(); 
    // do whatever you need with current line 
} 
sc.close(); 
0

Sie können etwas tun:

BufferedReader br = new BufferedReader(new FileReader("file.txt")); 
String currentLine; 
while ((currentLine = br.readLine()) != null) { 
    String[] strArgs = currentLine.split(" "); 
    //Use HashMap to enter key Value pair. 
    //You may to use fruit vegetable as key rather than other way around 
} 
0

Seit 8 Java können Sie einfach tun

Set<String[]> collect = Files.lines(Paths.get("/Users/me/file.txt")) 
      .map(line -> line.split(" ", 2)) 
      .collect(Collectors.toSet()); 

wenn Sie eine Karte möchten, können Sie kann Collectors.toSet by Collectors.toMap()

ersetzen
Map<String, String> result = Files.lines(Paths.get("/Users/me/file.txt")) 
      .map(line -> line.split(" ", 2)) 
      .map(Arrays::asList) 
      .collect(Collectors.toMap(list -> list.get(0), list -> list.get(1))); 
Verwandte Themen