将JTree对象序列化到文件

问题描述

我正在尝试将JTree对象序列化为文件

这就是我的做法:

FileOutputStream f = new FileOutputStream(new File("serialisation2.txt"));
ObjectOutputStream o = new ObjectOutputStream(f);

// Write objects to file
o.writeObject(jTree1);
                   
o.close();
f.close();

然后我要尝试阅读此内容

FileInputStream fi = new FileInputStream(new File("serialisation2.txt"));
ObjectInputStream oi = new ObjectInputStream(fi);
try{
   while(true){
          jTree2 = new javax.swing.JTree(raíz);

  System.out.println(oi.toString());
          jTree2 = (JTree) oi.readobject();
  }
}

但是事实是,当我执行java.io.EOFException

时,它将返回oi.readobject();

有什么想法吗?

解决方法

删除while循环,您实际上不需要jTree2 = new javax.swing.JTree(raíz);,只是jtree2可以获得反序列化的值。详细了解序列化herehere

FileInputStream fi = new FileInputStream(new File("serialisation2.txt"));
ObjectInputStream oi = new ObjectInputStream(fi);
jTree2 = (JTree) oi.readObject();