我创建了一个名为 Animal 的类,并实现了 Serialized。 Animal 类的每个对象都有一个名称和一个类型。在程序的 Main 方法中,我将创建一个 Animal 类型的对象,并为其分配名称和类型。然后我想将该对象写入一个文件,然后将该文件读取到一个 Animal 对象中。为此,我创建了以下方法:
Animal anim=new Animal();
Animal Anim2 = new Animal();
//writing into the file
private void writeOnFile() {
try{
FileOutputStream fout = new FileOutputStream("c:\\animal.ser");
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(anim);
oos.close();
System.out.println("Done");
}catch(Exception ex){
ex.printStackTrace();
}
}
// reading the file
private Animal readFromFile() {
try{
FileInputStream fin = new FileInputStream("c:\\animal.ser");
ObjectInputStream ois = new ObjectInputStream(fin);
anim = (Animal) ois.readObject();
ois.close();
return anim;
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
但现在我想创建一个 linkedList 并将 Animal 的几个对象添加到该 linkedList 中。如何更改 writeOnFile() 和 readFromFile() 方法来执行写入工作?你能指导一下吗?
最佳答案
Karianna 的回复很好,使用了 foreach。但这个作业显然关注的是 Serialized 接口(interface)的特性,所以让我们使用它吧。
由于您的 Animal 类实现了 Serialized 以及 LinkedList 类,因此您可以简单地将 LinkedList 传递到 ObjectOutputStream 并以类似的方式加载它。
LinkedList<Animal> list = new LinkedList<Animal>();
(... add some elements ...)
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(list);
加载将是你的一部分,因为你想从这个练习中学到一些东西,不是吗;)
关于java - 帮助解决 java I/O 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186972/