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