将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();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...