Hallo zusammen!
Ich möchte eine Methode schreiben, die einen Dateipfad (String) bekommt, die Datei am übergebenen Pfad einliest und dann Zeile für Zeile der Datei (ohne Leerzeilen) in einem String-Array zurückgibt.
Wichtig hierbei ist, dass ich die Aufgabe mittels Streams lösen möchte, und der Body aus nur einer einzigen Anweisung bestehen sollte.
Mein Ansatz dazu:
Soweit ich das verstehe:
Paths.get(filePath) gibt mir den Dateipfad von filePath und das brauch ich, da ja lines() ein Path erwartet und filePath ein String ist.
Damit geht Files.lines(Paths.get(filePath)) Zeile für Zeile durch meine dem Pfad entsprechende (text-)datei.
.filter(x -> !x.isEmpty()) sollte dann alle Zeilen nach denen filtern, die nicht leer sind.
.toArray() sollte dann Zeile für Zeile meine Textdatei in ein String-Array packen. Das STRING-Array würde ich durch das casten (String[]) erreichen.
Führt dieses vorgehen zum gewünschten Ziel? Gibt es noch einen anderen, leichteren Weg?
Viele Grüße
Ich möchte eine Methode schreiben, die einen Dateipfad (String) bekommt, die Datei am übergebenen Pfad einliest und dann Zeile für Zeile der Datei (ohne Leerzeilen) in einem String-Array zurückgibt.
Wichtig hierbei ist, dass ich die Aufgabe mittels Streams lösen möchte, und der Body aus nur einer einzigen Anweisung bestehen sollte.
Mein Ansatz dazu:
Java:
public static String[] readAllLines(String filePath) throws IOException {
return (String[]) Files.lines(Paths.get(filePath)).filter(x -> !x.isEmpty()).toArray();
}
Soweit ich das verstehe:
Paths.get(filePath) gibt mir den Dateipfad von filePath und das brauch ich, da ja lines() ein Path erwartet und filePath ein String ist.
Damit geht Files.lines(Paths.get(filePath)) Zeile für Zeile durch meine dem Pfad entsprechende (text-)datei.
.filter(x -> !x.isEmpty()) sollte dann alle Zeilen nach denen filtern, die nicht leer sind.
.toArray() sollte dann Zeile für Zeile meine Textdatei in ein String-Array packen. Das STRING-Array würde ich durch das casten (String[]) erreichen.
Führt dieses vorgehen zum gewünschten Ziel? Gibt es noch einen anderen, leichteren Weg?
Viele Grüße