Hallo zusammen,
ich habe eine ArrayList mit Personenobjekten in einen String umgewandelt, um diesen in eine Textdatei zu speichern (überschrieben mittels bufferedwriter).
Das ganze soll auch wieder rückwärts funktionieren, um die ArrayList nach erneutem Programmstart wieder aufrufen und weiter bearbeiten zu können.
Mittels
kann ich den String dann wieder einlesen. Das klappt, in der Konsole bekomme ich den String, sodass jedes Personenobjekt (auch mit entsprechenden Zeilenumbrüchen nach jedem Objekt) als String wiedergegeben wird. Aber es ist ja zu diesem Zeitpunkt noch "nur" ein großer String.
Jetzt möchte ich ja gerne die einzelnen, ursprünglichen Personenobjekte wieder zurück in die Ausgangsform bringen.
Dazu meine Fragen:
1) Ist es der "richtige" Weg, zunächst jede Zeile des Strings auszulesen und diese dann in eine String-Liste zu schreiben, damit jeder Index dann wieder zurück in die jeweiligen einzelnen Parameter geparst werden kann? Ich freunde mich gerade etwas mit den Streams an und dachte, das wäre dann vielleicht eine elegante Möglichkeit, zumal die Werte ohnehin dann noch nach einem bestimmten Parameter sortiert werden können sollen.
2) Wie geht das? (halbwegs elegant, ggf. mit einer dafür vorgesehenen Klasse) Hier verstehe ich zunächst also erstmal nicht, wie ich coden soll, dass jeweils immer nur eine Zeile auszulesen ist. Die Liste mit add.(ausgelesene Zeile) pro Zeile mithilfe einer Schleife zu füllen kriege ich dann hin denke ich.
Kann mir jemand weiterhelfen bzw. einen Tipp geben?
Bietet sich das an?
ich habe eine ArrayList mit Personenobjekten in einen String umgewandelt, um diesen in eine Textdatei zu speichern (überschrieben mittels bufferedwriter).
Code:
ListIterator <Personen> pIterator = ... // Methodenaufruf, passt
while (pIterator.hasNext()) {
for (Personen personen : personenKlasse.getPListe()) {
String personendaten += personen.toString()+ "\n";
}
return personendaten;
}
Das ganze soll auch wieder rückwärts funktionieren, um die ArrayList nach erneutem Programmstart wieder aufrufen und weiter bearbeiten zu können.
Mittels
Java:
try {
String dateieInhalt = new String(Files.readString(p)); //Paths p = ... --> passt
System.out.println(dateiInhalt); //funktioniert einwandfrei (nur zur Kontrolle)
} catch (IOException e) {
e.printStackTrace();
}
Jetzt möchte ich ja gerne die einzelnen, ursprünglichen Personenobjekte wieder zurück in die Ausgangsform bringen.
Dazu meine Fragen:
1) Ist es der "richtige" Weg, zunächst jede Zeile des Strings auszulesen und diese dann in eine String-Liste zu schreiben, damit jeder Index dann wieder zurück in die jeweiligen einzelnen Parameter geparst werden kann? Ich freunde mich gerade etwas mit den Streams an und dachte, das wäre dann vielleicht eine elegante Möglichkeit, zumal die Werte ohnehin dann noch nach einem bestimmten Parameter sortiert werden können sollen.
2) Wie geht das? (halbwegs elegant, ggf. mit einer dafür vorgesehenen Klasse) Hier verstehe ich zunächst also erstmal nicht, wie ich coden soll, dass jeweils immer nur eine Zeile auszulesen ist. Die Liste mit add.(ausgelesene Zeile) pro Zeile mithilfe einer Schleife zu füllen kriege ich dann hin denke ich.
Kann mir jemand weiterhelfen bzw. einen Tipp geben?
Code:
RandeomAccessFile file = new RandomAccesFile(p); //p = path
file.readUTF();
Zuletzt bearbeitet: