Speichern einer ArrayList in einer Java-Datei
Java bietet einen Mechanismus, mit dem ein Objekt als eine Sequenz von Bits dargestellt werden kann, die die Daten dieses Objekts und diese Informationen enthält: seinen Typ und die Typen der im Objekt gespeicherten Daten.Nachdem das serialisierte Objekt erfolgreich in der Datei gespeichert wurde, kann es problemlos aus der Datei gelesen und anschließend deserialisiert werden. Die Bits, die das Objekt und seine Daten darstellen, können verwendet werden, um das Objekt im Speicher neu zu erstellen.
Die Klassen ObjectInputStream und ObjectOutputStream sind zwei Datenströme auf hoher Ebene, die die Methoden zum Speichern und Lesen des Inhalts einer ArrayList aus einer .
ArrayList ist standardmäßig serialisierbar. Das bedeutet, dass Sie die Serializable-Schnittstelle nicht implementieren müssen, um eine ArrayList zu serialisieren.
Speichern einer ArrayList in einer Diese Klasse erstellt eine Testdatei, die ein ArrayList-Objekt als Bitstrom enthält. Die Testdatei wird verwendet, um das Objekt aus Bitstreams zu speichern und neu zu erstellen. Beachten Sie, dass wir die Serializable-Schnittstelle in diesem Beispiel nicht implementiert haben, da ArrayList bereits standardmäßig serialisiert ist.
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add("Hallo Welt");
al.add ("Hallo Welt");
try {
FileOutputStream fileOut = new FileOutputStream("test");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(al);
out.close();
fileOut.close();
System.out.println("\nSerialisierung erfolgreich abgeschlossen...\n");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Laufzeit:
Serialisierung erfolgreich abgeschlossen...
Der Inhalt der Binärdatei, die nach dem Öffnen erstellt wurde, sieht folgendermaßen aus:
Lesen und erstellen Sie eine ArrayList aus einer In dieser Klasse rufen wir den Datenstrom in Form von Bits aus der Testdatei ab, die wir mit der obigen Klasse gespeichert haben. Wir konvertieren das zurückgegebene Objekt mit der Umwandlung in ArrayList und zeigen die Elemente von ArrayList an. Wenn wir uns die Ausgabe ansehen, erhalten wir die gleichen Elemente, die wir vor der Serialisierung zur Liste hinzugefügt haben.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
//read
ArrayList< String> arraylist= new ArrayList< String> ();
try {
FileInputStream fileIn = new FileInputStream("test");
ObjectInputStream ois = new ObjectInputStream(fileIn);
arraylist = (ArrayList) ois.readObject();
ois.close();
fileIn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Automatisch generierter catch-Block
e.printStackTrace();
}
System.out.println("Daten lesen: \n");
for(String o:arraylist)
System.out.println(o);
}
}
Laufzeit:
Lesedaten:
hello world
hello world
Das war's! Zögern Sie nicht, Ihre Fragen zu stellen;)
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
ArrayList
al.add("Hallo Welt");
al.add ("Hallo Welt");
try {
FileOutputStream fileOut = new FileOutputStream("test");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(al);
out.close();
fileOut.close();
System.out.println("\nSerialisierung erfolgreich abgeschlossen...\n");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileInputStream;Laufzeit:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
//read
ArrayList< String> arraylist= new ArrayList< String> ();
try {
FileInputStream fileIn = new FileInputStream("test");
ObjectInputStream ois = new ObjectInputStream(fileIn);
arraylist = (ArrayList) ois.readObject();
ois.close();
fileIn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Automatisch generierter catch-Block
e.printStackTrace();
}
System.out.println("Daten lesen: \n");
for(String o:arraylist)
System.out.println(o);
}
}
Lesedaten:Das war's! Zögern Sie nicht, Ihre Fragen zu stellen;)
hello world
hello world