1

好的,所以我的问题是我在 java 中使用了很多程序,它们使用完全相同的对象数组,但我不想在每次编写新程序时都重新创建这个数组。有没有办法保存一组对象以供其他java程序使用。如果是这样怎么办?

4

4 回答 4

3

如果您是初学者,您应该将对象数组序列化到一个文件中。约定是命名您的序列化文件 name-of-file.ser

try
      {
     FileOutputStream fileOut = new FileOutputStream("card.ser");//creates a card serial file in output stream
     ObjectOutputStream out = new ObjectOutputStream(fileOut);//routs an object into the output stream.
     out.writeObject(array);// we designate our array of cards to be routed
     out.close();// closes the data paths
     fileOut.close();// closes the data paths
  }catch(IOException i)//exception stuff
  {
      i.printStackTrace();
}

反序列化它使用这个:

try// If this doesnt work throw an exception
         {
            FileInputStream fileIn = new FileInputStream(name+".ser");// Read serial file.
            ObjectInputStream in = new ObjectInputStream(fileIn);// input the read file.
            object = (Object) in.readObject();// allocate it to the object file already instanciated.
            in.close();//closes the input stream.
            fileIn.close();//closes the file data stream.
        }catch(IOException i)//exception stuff
        {
            i.printStackTrace();
            return;
        }catch(ClassNotFoundException c)//more exception stuff
        {
            System.out.println("Error");
            c.printStackTrace();
            return;
        }
于 2012-08-12T18:53:07.967 回答
1

要序列化一个对象,请创建一个 ObjectOutputStream 并调用 writeObject。

// Write to disk with FileOutputStream
FileOutputStream f_out = new 
    FileOutputStream("myobject.data");

// Write object with ObjectOutputStream
ObjectOutputStream obj_out = new
    ObjectOutputStream (f_out);

// Write object out to disk
obj_out.writeObject ( myArray );

参考

于 2012-08-12T18:52:21.877 回答
0

您可以序列化多种对象。是的,数组也是一个对象(@see Array 类)。如果你不想要数组的限制,你也可以使用容器类之一(例如 LinkedList)。序列化的工作方式相同。

于 2012-08-12T18:59:17.577 回答
-1

编写一个管理这个数组的类。将这个类以及它所依赖的类放在它自己的 JAR 中。在多个程序中重复使用 JAR。

如果您使用 Eclipse,您可以通过创建一个新的 Java 项目(我们称之为项目 OM - 来自对象模型)并将 Foo 和 FooManager 类放在那里来做到这一点。然后在每个要重用对象的项目中,在项目的 Build Properties 中将 OM 项目添加到类路径和导出选项卡中。而已。

于 2012-08-12T19:03:00.217 回答