Java 使用ObjectOutputStream将对象从列表写入文件
我正在尝试使用ObjectOutputStream将列表(对象)的内容写入磁盘 以下是相关代码:Java 使用ObjectOutputStream将对象从列表写入文件,java,apache-poi,outputstream,objectoutputstream,poi-hssf,Java,Apache Poi,Outputstream,Objectoutputstream,Poi Hssf,我正在尝试使用ObjectOutputStream将列表(对象)的内容写入磁盘 以下是相关代码: //Input Filetype is .xlsx with an embedded File (also .xlsx), Output Filetype should be .xlsx (Type of embedded File) //This code should save the embedded File to D:\\... List<HSSFObjectData> ex
//Input Filetype is .xlsx with an embedded File (also .xlsx), Output Filetype should be .xlsx (Type of embedded File)
//This code should save the embedded File to D:\\...
List<HSSFObjectData> extrList = new ArrayList<HSSFObjectData>();
HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(pPart.getInputStream());
extrList = embeddedWorkbook.getAllEmbeddedObjects();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\scan_temp\\emb.xlsx"));
oos.writeObject(extrList);
oos.flush();
oos.close();
我做错了什么?谢谢你的帮助
我做错了什么
你做错了几件事:
.xlsx
扩展名。该扩展用于XML格式的Excel电子表格。您应该使用类似于.bin
、.data
、.ser
等的内容close()
之前重复调用flush()
.xlsx
扩展名。该扩展用于XML格式的Excel电子表格。您应该使用类似于.bin
、.data
、.ser
等的内容close()
之前重复调用flush()
如果其他人正在尝试与我相同的事情,请使用以下代码(有效!):
不要试图将嵌入的对象放入列表中。只需使用
.write()
即可。:-) 如果其他人正在尝试与我相同的事情,请使用以下代码(有效!):
不要试图将嵌入的对象放入列表中。只需使用
.write()
即可。:-) 谢谢你的回答。因此,如果我的数据存储为二进制文件。。甚至可以使用ObjectOutputStream以原始数据格式保存嵌入文件(xlsx)吗?你能给我看一个示例代码吗?多谢各位ObjectOutputStream
不以“原始格式”存储任何内容。它根据对象序列化规范中定义的序列化协议进行存储。您需要再次了解POI API,了解如何将电子表格对象存储为.xlsx
。序列化不适合您。好吧,我刚刚意识到我的代码在各个方面都是错误的。:)ObjectOutputStream对我的情况没有帮助。谢谢你的回答。因此,如果我的数据存储为二进制文件。。甚至可以使用ObjectOutputStream以原始数据格式保存嵌入文件(xlsx)吗?你能给我看一个示例代码吗?多谢各位ObjectOutputStream
不以“原始格式”存储任何内容。它根据对象序列化规范中定义的序列化协议进行存储。您需要再次了解POI API,了解如何将电子表格对象存储为.xlsx
。序列化不适合您。好吧,我刚刚意识到我的代码在各个方面都是错误的。:)ObjectOutputStream对我的情况没有帮助。
¬í sr java.util.ArrayListxÒ™Ça I sizexp w x
HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(InputStream);
FileOutputStream fileOut = new FileOutputStream("/outputfilepath.xls");
embeddedWorkbook.write(fileOut);
fileOut.close();