T
Thecoder_2000
Gast
kann man in Java einen Array,ähnlich wie in Phython (pickle) serialisieren? Über eine schnelle Antwort wäre ich dankbar.
Da ich absoluter anfänger bin verstehe ich es nicht.es Wäre nett wenn es mir jemand erklärt.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream; // importierte Klassen die es braucht
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class scanner4 {
public static void main(String[] args) { // serialisieren = FileInputStream , deserialisieren = FileOutputStream
ArrayList<String> nameList ; // ArrayList deklarieren
FileInputStream dat1 = null; // Eingabestream deklarieren
ObjectInputStream in = null; // Objekt-Eingabestream deklarieren
try { // Ausnahme(Exception) behandeln
dat1 = new FileInputStream("datei.dat"); // Eingabestream instanzieren und Datei(Datei.dat) erzeugen
in = new ObjectInputStream(dat1); // Objekt-Eingabestream mit Eingabestream verketten
nameList = (ArrayList<String>) in.readObject(); // Eingabestrom wird mit ArrayList(Objekt) beschrieben
} catch(Exception e) {nameList= new ArrayList<String>();} // Exception abfangen
finally{if (in!=null)try{in.close();}catch(Exception e2){};} // was unbedingt gemacht werden muss
System.out.println("Bereits gespeicherte Namen:"); // Namen ausgeben
for (String s :nameList) { // ArrayList durchgehen
System.out.println(s); // und Namen ausgeben
}
FileOutputStream dat = null; // Ausgabestream deklarieren
ObjectOutputStream out = null; // Objekt-Asugabestream deklarieren
System.out.print("Bitte Name eingeben: "); //Namen eingeben
Scanner eingabe = new Scanner(System.in); // Eingabefeature, Namen eingeben
String name = eingabe.nextLine(); // Namen eingeben
System.out.println("\nGuten Morgen " + name + "!"); // Namen ausgeben
nameList.add(name); // ArrayList nimmt Namen auf
try { // Ausnahme(Exception) behandeln
dat = new FileOutputStream("datei.dat", false); // Ausgabestream instanzieren
out = new ObjectOutputStream(dat); // Objekt-Ausgabestream instanzieren
out.writeObject(nameList); // ArrayList(Objekt) in Ausgabestrom(Datei) schreiben
} catch (Exception e) {e.printStackTrace();} //Ausnahme behandeln
finally { // was unbedingt gemacht werden muss
try {
if (out != null) {
out.close();
}
} catch (IOException e) {}
}
}
}
FileOutputStream f = new FileOutputStream("datei");
ObjectOutput s = new ObjectOutputStream(f);
s.writeObject(new Integer(3));
s.writeObject("Text");
s.flush();