我想序列化/反序列化一个对象。代码运行但是txt中的结果是垃圾。
以下是代码:
public class Test implements Serializable {
public String[] nom;
public Test() {
nom = new String[5];
nom[0] = "Coucou";
nom[1] = "Je suis un tab de String";
nom[2] = "Je vais me faire serialiser";
nom[3] = "Et deserialiser aussi !";
nom[4] = "Je suis le roi du monde !";
}
}
主要:
Test test = new Test();
File f = new File ("nom.txt");
try (ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream (f))) {
oos.writeObject (test);
}
catch (IOException exception)
{
System.out.println ("Erreur lors de l'écriture : " + exception.getMessage());
}
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f)) ;
Test test2 = (Test)ois.readObject();
System.out.println(test2.nom[0]);
System.out.println(test2.nom[1]);
System.out.println(test2.nom[2]);
System.out.println(test2.nom[3]);
System.out.println(test2.nom[4]);
txt文件中的结果是:
¬ísrtp.java.Testp32< [nomt [Ljava / lang / String; xpur [Ljava.lang.String;ÒVçé{G xp t Coucout Je suis un tab de Stringt Je vais me faire serialisert et deserialiser aussi!t Je suis le roi du monde!
控制台显示反序列化的结果,这是完美的:
Coucou
Je suis un tab de String
Je vais me faire serialiser
Et deserialiser aussi !
Je suis le roi du monde !
有什么想法吗?这是UTF-8问题吗?
答案 0 :(得分:2)
这就是实际序列化的工作原理,它不会写一个可读的文本文件,而是缩短了对象字段的版本。