java - 帮助解决 java I/O 问题

标签 java file-io

我创建了一个名为 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/

相关文章:

c++ - 将 ostream 重定向到文件不起作用

c# - 文件夹事件中的新文件

C++ 精确复制文件内容

java - 哪个是 Spring 4 支持的最低 Java 版本

java - 在java中处理套接字

Java - ArrayList<Integer> 作为参数...?

java - 在 Activity 更改时构建类似 iOS 的 Transition

java - 如何将 Java 列表映射转换为 Scala 列表映射

java - 从文本文件实例化一个类

file-io - 延迟读取 D 中的文件