我有一个java组件,它正在压缩csv文件并从ByteArrayOutputStream返回一个字节数组。我试图将其传递给文件传输以写入操作系统。文件被写入操作系统,但Windows在我尝试打开文件时报告该文件无效。首先,是否可以将字节数组发送到文件传输?如果是这样,那么我想我可能不得不发布另一个关于我做错了什么的问题压缩csv的内容......
这是java的一个片段:
List<String> csvFiles = (List<String>)message.getPayload();
InputStream originalFile = null;
ByteArrayOutputStream dest = new ByteArrayOutputStream();
ZipOutputStream out = new ZipOutputStream(dest);
File temp = new File("users.csv");
originalFile = new
ByteArrayInputStream((csvFiles.get(0)).toString().getBytes());
ZipEntry entry = new ZipEntry(temp.getPath());
out.putNextEntry(entry);
int count;
while((count = originalFile.read()) != -1) {
out.write(count);
}
originalFile.close();
byte[] zipFileByteArray = dest.toByteArray();
out.close();
dest.close();
return zipFileByteArray;
这是我流程的相关部分:
<flow name="zip-csv">
<component class="edu.ucdavis.iet.canvas.ZipFiles" doc:name="Java"/>
<file:outbound-endpoint path="${message_archive.dir}" responseTimeout="10000" doc:name="save message to dir" outputPattern="temp.zip"/>
</flow>
答案 0 :(得分:0)
我建议使用提交此问题的ZipTransformer类@anupambhusari: