![](/img/trans.png)
[英]Java FileStream - ObjectOutputStream ObjectInputStream
[英]Line Break in an ObjectOutputStream/ObjectInputStream in Java?
我编写了一个简单的程序来将对象(例如书籍,杂志等)序列化和反序列化为文件,并且使用了Java实用程序库的ObjectInputStream / ObjectOutputStream类。
一切正常,但是我想在每个对象之后添加一些换行符,以便在打开文件时更具可读性。
在ObjectInputStream / ObjectOutputStream类中使用字符串时,“ \\ n”是否等效?
PS:我还有一个版本,其中我使用xml数据使用XStream进行序列化和反序列化。 有没有人知道使用XStream进行这样的中断(如果存在的话)?
OutputStream fos = null;
ObjectOutputStream o = null;
// Now serialize objects into the file
try
{
fos = new FileOutputStream("C:\\Users...");
// Initialize the ObjectOutputStream with XStream when xml_switcher is set to true
if (xml_switcher == true) {
o = xstream.createObjectOutputStream(fos);
}
// Otherwise normal serializing by creating a normal ObjectOutputStream
else {
o = new ObjectOutputStream( fos );
}
ArrayList<Printing> resultList = Access.getAllPrintings();
Iterator<Printing> it = resultList.iterator();
while (it.hasNext()) {
if (xml_switcher == true) {
o.writeObject(it.next());
// So here's my problem: I would like to have something like o.write("\n")
// using XStream
}
else {
o.writeObject(it.next().toString());
// Same here but without XStream
}
}
}
您可以使用write(int)和write(byte [])方法将任意数据注入ObjectOutputStream中。 只要确保读取流的代码知道如何处理它即可。 特别是换行符可以写成
out.write('\n');
就是说,对象序列化格式并非旨在人类可读。 如果您想要人类可读的输出,建议您使用JSON。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.