Format default
Salinan kode adalah sebagai berikut:
MyClass kelas publik mengimplementasikan serial {
...}
Serialisasi:
Salinan kode adalah sebagai berikut:
ObjectOutputStream output = new ObjectOutputStream (FileOutputStream baru (outputPath));
output.writeObject (myObject);
Deserialisasi:
Salinan kode adalah sebagai berikut:
ObjectInputStream input = ObjectInputStream baru (FileInputStream baru (inputPath));
return (myclass) input.readObject ();
Format JSON
Gunakan paket Jackson. Jackson adalah paket Java Json yang sangat efisien. Silakan merujuk ke situs web resmi untuk dokumentasi dan unduhan.
Serialisasi
Salinan kode adalah sebagai berikut:
ObjectMapper mapper = new ObjectMapper ();
mapper.writevalue (file baru (outputPath), myObject);
Deserialisasi:
Salinan kode adalah sebagai berikut:
return mapper.readValue (file baru (outputPath), myclass.class);
Kode tes lengkap
Salinan kode adalah sebagai berikut:
impor java.io.file;
impor java.io.fileInputStream;
impor java.io.fileoutputStream;
impor java.io.ioException;
impor java.io.objectInputStream;
impor java.io.objectOutputStream;
impor java.io.serializable;
impor java.util.arraylist;
impor com.fasterxml.jackson.core.jsongeNerationException;
impor com.fasterxml.jackson.core.jsonparseexception;
impor com.fasterxml.jackson.databind.jsonmappingException;
impor com.fasterxml.jackson.databind.objectmapper;
Kebun Binatang Kelas Publik mengimplementasikan Serializable {
private static final long serialversionuid = 1L;
Private Static ObjectMapper mapper = new ObjectMapper ();
public static int maxanimalcount;
Public ArrayList <String> Hewan;
zoo publik () {
hewan = new arraylist <string> ();
}
public static void setmax (int max) {
maxanimalcount = maks;
}
/**
* Tambahkan susunan hewan ke hewan.
* @param AnimalName
*/
public void addanimal (string animalName) {
if (animals.size () <maxanimalcount)
hewan.
}
@Mengesampingkan
Public String ToString () {
return "Zoo: /n hewan:" + hewan.tostring () +
"/n maxanimalcount:" + maxanimalcount + "/n";
}
/**
* Output Serialisasi standar untuk mengajukan di LogPath.
* @param Logpath
*/
public void serializetolog (string logPath) {
Output ObjectOutputStream = null;
mencoba
{
output = new ObjectOutputStream (
FileOutputStream baru (LogPath));
output.writeObject (ini);
} catch (Exception e) {
e.printstacktrace ();
} Akhirnya {
mencoba {
output.close ();
} catch (ioException e) {
e.printstacktrace ();
}
}
}
/**
* Output Serialisasi JSON (menggunakan Jackson) untuk mengajukan di LogPath.
* @param Logpath
*/
public void SerializeJsontolog (String LogPath) {
mencoba {
mapper.writevalue (file baru (logPath), ini);
} catch (jsongeNerationException e) {
e.printstacktrace ();
} catch (jsonmappingException e) {
e.printstacktrace ();
} catch (ioException e) {
e.printstacktrace ();
}
}
/**
* Standard Deserialize Instance Zoo dari File di LogPath.
* @param Logpath
* @return deserialized zoo instance
*/
Public Static Zoo Deserializefromlog (String LogPath) {
Input ObjectInputStream = null;
mencoba
{
input = new ObjectInputStream (
FileInputStream baru (logPath));
return (zoo) input.readObject ();
} catch (Exception e) {
e.printstacktrace ();
} Akhirnya {
mencoba {
input.close ();
} catch (ioException e) {
e.printstacktrace ();
}
}
kembali nol;
}
/**
* JSON deserialize instance kebun binatang dari file di logpath.
* @param Logpath
* @return json deserialized zoo instance
*/
Public Static Zoo DeserializeJsonFromLog (String LogPath) {
mencoba {
return mapper.readValue (file baru (logPath), zoo.class);
} catch (jsonparseexception e) {
e.printstacktrace ();
} catch (jsonmappingException e) {
e.printstacktrace ();
} catch (ioException e) {
e.printstacktrace ();
}
kembali nol;
}
}
kelas zooserializetest {
public static void main (string [] args) {
Zoo Zoo1 = New Zoo ();
Zoo.setmax (100);
zoo1.addanimal ("hamster");
zoo1.addanimal ("domba");
zoo1.serializetolog ("zoo1.log");
Zoo Zoo2 = New Zoo ();
Zoo.setmax (200);
Zoo2.addanimal ("Tiger");
zoo2.serializetolog ("zoo2.log");
Zoo.setmax (300);
// Deserialization
zoo1 = zoo.deserializefromlog ("zoo1.log");
zoo2 = zoo.deserializefromlog ("zoo2.log");
System.out.println ("ZOO1: /N" + ZOO1);
System.out.println ("ZOO2: /N" + ZOO2);
// Serialize ke JSON
zoo1.serializeJsontolog ("zoo1.json");
zoo1 = zoo.deserializeJonfromlog ("zoo1.json");
System.out.println ("ZOO1 dari JSON: /N" + ZOO1);
}
}