Format par défaut
La copie de code est la suivante:
classe publique MyClass implémente sérialisable {
...}
Sérialisation:
La copie de code est la suivante:
ObjectOutputStream output = new ObjectOutputStream (new FileOutputStream (OutputPath));
output.writeObject (myObject);
Désérialisation:
La copie de code est la suivante:
ObjectInputStream input = new ObjectInputStream (new FileInputStream (inputPath));
return (myClass) input.readObject ();
Format JSON
Utilisez le package Jackson. Jackson est un package Java JSON très efficace. Veuillez vous référer au site officiel pour la documentation et les téléchargements.
Sérialisation
La copie de code est la suivante:
ObjectMapper Mappeur = new ObjectMapper ();
MAPER.WRITEVALUE (nouveau fichier (OutputPath), MyObject);
Désérialisation:
La copie de code est la suivante:
return mappy.readvalue (nouveau fichier (outputpath), myclass.class);
Terminer le code de test
La copie de code est la suivante:
Importer java.io.file;
import java.io.fileInputStream;
Importer java.io.fileOutputStream;
Importer java.io.ioException;
import java.io.objectInputStream;
Importer java.io.ObjectOutputStream;
import java.io.serializable;
import java.util.arraylist;
import com.fasterxml.jackson.core.jsonsenerationException;
import com.fasterxml.jackson.core.jsonparseException;
import com.fasterxml.jackson.databind.jsonmappingException;
import com.fasterxml.jackson.databind.objectmapper;
classe publique zoo implémente sérialisable {
Long SerialVersionUID privé statique statique = 1L;
Private Static ObjectMapper Mapper = new ObjectMapper ();
public static int maxanimalcount;
Public ArrayList <string> Animaux;
Zoo public () {
animaux = new ArrayList <string> ();
}
public static void setmax (int max) {
maxanimalCount = max;
}
/ **
* Ajouter un animal à un tableau des animaux.
* @param animalname
* /
public void addanimal (String AnimalName) {
if (animaux.size () <maxanimalcount)
animaux.add (nom d'animaux);
}
@Outrepasser
public String toString () {
Retour "Zoo: / n animaux:" + animaux.tostring () +
"/ n maxanimalCount:" + maxanimalcount + "/ n";
}
/ **
* Sortir la sérialisation standard pour fichier sur logPath.
* @param logpath
* /
public void Serializetolog (String LogPath) {
ObjectOutputStream output = null;
essayer
{
output = new ObjectOutputStream (
new FileOutputStream (logPath));
output.writeObject (this);
} catch (exception e) {
e.printStackTrace ();
} enfin {
essayer {
output.close ();
} catch (ioexception e) {
e.printStackTrace ();
}
}
}
/ **
* Sortir la sérialisation JSON (à l'aide de Jackson) pour déposer sur logPath.
* @param logpath
* /
public void serializejSontolog (String LogPath) {
essayer {
MAPPER.WRITEVALUE (nouveau fichier (LogPath), This);
} catch (jsongenerationxception e) {
e.printStackTrace ();
} catch (JSONMappingException e) {
e.printStackTrace ();
} catch (ioexception e) {
e.printStackTrace ();
}
}
/ **
* STANDARD DÉSÉRIALISE Une instance de zoo à partir du fichier à LogPath.
* @param logpath
* @return instance de zoo désérialisé
* /
Public static Zoo DeserializeFromLog (String LogPath) {
ObjectInputStream Input = null;
essayer
{
input = new ObjectInputStream (
new FileInputStream (logPath));
return (zoo) input.readObject ();
} catch (exception e) {
e.printStackTrace ();
} enfin {
essayer {
input.close ();
} catch (ioexception e) {
e.printStackTrace ();
}
}
retourner null;
}
/ **
* JSON désérialisez une instance de zoo à partir du fichier sur logPath.
* @param logpath
* @return json désérialisation du zoo
* /
Public STATIC ZOO DeserializejsonFromLog (String LogPath) {
essayer {
return mappy.readvalue (nouveau fichier (logPath), zoo.class);
} catch (jsonparseException e) {
e.printStackTrace ();
} catch (JSONMappingException e) {
e.printStackTrace ();
} catch (ioexception e) {
e.printStackTrace ();
}
retourner null;
}
}
classe zooSerializETest {
public static void main (String [] args) {
Zoo zoo1 = new zoo ();
Zoo.setmax (100);
zoo1.addanimal ("hamster");
zoo1.addanimal ("mouton");
zoo1.serializetolog ("zoo1.log");
Zoo zoo2 = new zoo ();
Zoo.setmax (200);
zoo2.addanimal ("tigre");
zoo2.Serializetolog ("zoo2.log");
Zoo.setmax (300);
// désérialisation
zoo1 = zoo.deserializeFromLog ("zoo1.log");
zoo2 = zoo.deserializeFromLog ("zoo2.log");
System.out.println ("zoo1: / n" + zoo1);
System.out.println ("zoo2: / n" + zoo2);
// sérialiser à JSON
zoo1.serializejSontolog ("zoo1.json");
zoo1 = zoo.deserializejsonFromLog ("zoo1.json");
System.out.println ("zoo1 de json: / n" + zoo1);
}
}