序列化代码
public class JavaSerialization
{
public static void main(String args[])
{
serial s = new serial("This is serialization test.");
try
{
FileOutputStream fos = new FileOutputStream("mytext.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(s);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class serial implements Serializable
{
private String s;
private static final long serialVersionUID = 4616307934661308622L;
public serial(String s)
{
this.s = s;
System.out.println("Output of Serilization : "+s);
}
@Override
public String toString()
{
return s;
}
}
反序列化代码
public class JavaDeserialization
{
public static void main(String args[])
{
try
{
FileInputStream fis = new FileInputStream("mytext.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
serial s = (serial)ois.readObject();
System.out.println("deserialization :"+s.toString());
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
toString()是一个像任何其他方法一样的方法,它可以访问任何其他方法可以访问的任何东西。如果您可以获得对要访问的对象的引用,则很可能您可以访问所需的任何内容。
如果你问你的toString()是否应该起作用,最好的方法是尝试它但你可以这样做。
注意:如果您保持未刷新和未关闭的缓冲输出流,您将丢失部分结束,可能是所有数据。
当您完成或使用try-with-resource构造时,我建议您close()
一个资源。
public static void main(String[] args) throws IOException {
Serial s = new Serial("This is serialization test.");
try(ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("mytext.txt")){
oos.writeObject(s);
}
}