我有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) {}
但是代码只适用于字节数组,任何人都可以帮助我吗?
答案 0 :(得分:1)
或者您可以使用序列化来保存整个对象。
看看javadoc:
http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html
这里是stackoverflow的一个例子:
答案 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实现了可序列化,所以你自己也可以这样做。