JAVA - 如何在桌面上保存Shape数组?

时间:2013-04-24 12:59:13

标签: java shape

我有Shape数组:

Shape[] myshape = new Shape[13];

如何将其保存到文件?

我找到了一些代码:

String fileName = "file.test";

BufferedOutputStream bs = null;

try {
    FileOutputStream fs = new FileOutputStream(new File(fileName));
    bs = new BufferedOutputStream(fs);
    bs.write(byte_array);
    bs.close();
    bs = null;
} catch (Exception e) {
    e.printStackTrace()
}

if (bs != null) try { bs.close(); } catch (Exception e) {}

但是代码只适用于字节数组,任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

或者您可以使用序列化来保存整个对象。

看看javadoc:

http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html

这里是stackoverflow的一个例子:

serialization/deserialization mechanism

答案 1 :(得分:1)

保存对象有很多选项,本机Java序列化就是其中之一。如果您不想使用序列化,可以查看XStream,它将把POJO写成XML。

优点是它会写出人类可读的XML,oyu不必为你的对象实现特定的接口。缺点是XML相对冗长。

答案 2 :(得分:0)

试试这样:

Shape[] myshape = new Shape[13];

// populate array

// writing array to disk
FileOutputStream f_out = new FileOutputStream("C:\myarray.data");
ObjectOutputStream obj_out = new ObjectOutputStream (f_out);
obj_out.writeObject(array);

// reading array from disk
FileInputStream f_in = new FileInputStream("C:\myarray.data");
ObjectInputStream obj_in = new ObjectInputStream (f_in);
Shape[] tmp_array = (Shape[])obj_in.readObject();

答案 3 :(得分:0)

您必须序列化形状才能将它们转换为字节数组。 我不认为Shape实现了可序列化,所以你自己也可以这样做。