Hallo. Ich habe mir gerade eine kleine Methode gebastelt, die eine Text Datei Zeile für Zeile auslest und in einem Arraydeque speichert. Das erleichtert mir eines, da ich nicht im Vorhinein wissen muss, wieviele Zeilen die Textdatei hat. Jetzt beiße ich mir aber gerade die Zähne daran aus, das ArrayDeque in ein String Array umzuwandeln. Es funktioniert leider nur teilweise.
Wenn ich das ArrayDeque mittels toString() ausgebe, erhalte ich alle Einträge korrekt dargestellt.
Das StringArray wird richtig initialisiert, doch es werden nur die hälfte der 14 Elemente der Textdatei vom Arraydeque in das Array übertragen. (ab Zeile 55)
Die zweite hälfte befindet sich nach erneutem Ausgeben des ArrayDeques immer noch im Array.
Bitte um Gedankenanstoß, ich steh grad voll auf der Leitung! :bahnhof:
mfg suizi
Wenn ich das ArrayDeque mittels toString() ausgebe, erhalte ich alle Einträge korrekt dargestellt.
Das StringArray wird richtig initialisiert, doch es werden nur die hälfte der 14 Elemente der Textdatei vom Arraydeque in das Array übertragen. (ab Zeile 55)
Die zweite hälfte befindet sich nach erneutem Ausgeben des ArrayDeques immer noch im Array.
Bitte um Gedankenanstoß, ich steh grad voll auf der Leitung! :bahnhof:
mfg suizi
Java:
package inout;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayDeque;
public class read {
public static void main(String[] args) {
String[] test = txt("test");
}
/*txt(filename)
* Reads a *.txt file line by line, (requires only the filename with no extensions)
* safes it in an String arrayDeque,
* and returns the whole String Array.
*/
public static String[] txt(String fileName) {
fileName= System.getProperty("user.dir") + "/" + fileName + ".txt"; //creates Link to program directory
ArrayDeque<String> contentArrayDeque = new ArrayDeque<String>();
String [] contentStringArray = null;
try {
BufferedReader in = new BufferedReader(new FileReader(fileName));
String zeile = "";
while (zeile != null) {
zeile = in.readLine();
if(zeile != null) { //against NullPointerException
contentArrayDeque.addLast(zeile);
}
}
in.close();
} catch(IOException e) {
System.out.println("Error reading the File! Check if the file is in the correct directory or named correctly!");
e.printStackTrace();
} finally { //change ArrayDeque to normal String Array
if(!contentArrayDeque.isEmpty()) {
contentStringArray = new String[contentArrayDeque.size()]; //initialize the String Array
for(int i = 0; i<contentArrayDeque.size(); i++) {
contentStringArray[i] = contentArrayDeque.pop(); //pop the head off and add it into the String Array
}
} else {
System.out.println("The txt-file was empty!");
}
}
return contentStringArray;
}
}