从 ByteArrayOutputStream 创建文件
Posted
技术标签:
【中文标题】从 ByteArrayOutputStream 创建文件【英文标题】:Create a file from a ByteArrayOutputStream 【发布时间】:2013-07-03 12:52:11 【问题描述】:如果我只有ByteArrayOutputStream
,谁能解释我如何获取文件对象。如何从ByteArrayOutputStream
创建文件?
【问题讨论】:
【参考方案1】:您可以使用FileOutputStream
和writeTo
方法来做到这一点。
ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename"))
byteArrayOutputStream.writeTo(outputStream);
来源:"Creating a file from ByteArrayOutputStream in Java." on Code Inventions
【讨论】:
@MarkusMikkolainen 是的 .. 很明显 :) 或者使用 java 7 try with resources 语句彻底摆脱 finally 块;)***.com/questions/2016299/… 兄弟,如果我没有 "thefilename" 怎么办,我有那个 excel 的字节 [] 流,那该怎么办?【参考方案2】:您可以为此使用 FileOutputStream。
FileOutputStream fos = null;
try
fos = new FileOutputStream(new File("myFile"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// Put data in your baos
baos.writeTo(fos);
catch(IOException ioe)
// Handle exception here
ioe.printStackTrace();
finally
fos.close();
【讨论】:
您的代码在try
块中无法与fos
一起使用。此外,new File()
不是必需的。
他添加了“new File()”是件好事。读者更容易知道有可用的 File 构造函数。
android 好像需要这个。
可以在 try-with-resources() 中使用 fos 来改进并删除 finally以上是关于从 ByteArrayOutputStream 创建文件的主要内容,如果未能解决你的问题,请参考以下文章
来自 OutputStream 的 ByteArrayOutputStream
在Java中将DOM Document转换为ByteArrayOutputStream时的字符编码问题
字节数组流ByteArrayInputStream&ByteArrayOutputStream