import java.io.*;
import java.util.Scanner;
import java.util.regex.*;
public class Grep {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(new File("C:/datei.txt")));
String line = null;
while((line = br.readLine()) != null) {
String[] parts = line.split( "\n" );
System.out.println(parts[0]);
}
}
}
will den Text der datei einlesen und jedesmal bei einem zeilenumbruch im Text, die zeile in ein arrey speichern.
Eigentlich müsste mir parts[0] die erste zeile part[1] die zweite zeile usw. ausgeben.
Nur gibt parts[0] den kompletten text aus und parts[1] führt zu eine Exception.
Wo liegt da der Fehler? Kann mir jemand bitte helfen?
Du liest doch hiermit sowieso immer nur eine Zeile ein. Was willst du denn da splitten ? Der split wird dir in parts[0] genau diese Zeile wieder liefern
Aber readLine() liest doch alle zeilen ein? Oder nur die erste?
Wenn meine Textdatei wie folgt aussieht:
Code:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore
et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum.
Dann lese ich doch mit der readLine() methode jede einzelne Zeile ein.
Wenn ich
Code:
...
System.out.println(parts[0]);
...
verwende spuckt er mir genau das wieder aus:
Code:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore
et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum.
Wie kriege ich es aber hin das er in jedem array, jede einzelne zeile für sich abspeichert?
parts[0] --> erste zeile
parts[1] --> zweite zeile
parts[2] --> dritte zeile
usw...
Nein, wie der Name schon sagt liest readLine() eine Zeile ein. Und du hast es ja in einer Schleife verwendet also wird eine Zeile nach der anderen eingelesen.
Und wenn du die Zeilen in einem String-Array speichern willst müsstest du ja vorher schon wissen wieviele Zeilen es sind. Das richtige wäre es hier jede Zeile zu einer ArrayList<String> hinzuzufügen