从ByteArrayOutputStream创建文件


Answers:


137

您可以使用FileOutputStreamwriteTo方法来实现。

ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename")) {
    byteArrayOutputStream.writeTo(outputStream);
}

来源:“使用Java从ByteArrayOutputStream创建文件”。关于代码发明


20
然后也将其关闭。
Markus Mikkolainen

1
@MarkusMikkolainen是..显然是:)
Suresh Atta

9
或使用Java 7中尝试资源语句,以彻底摆脱掉finally块;)stackoverflow.com/questions/2016299/...
dimuthu

兄弟,如果我没有“ thefilename”,该怎么办?
丹麦

26

您可以为此使用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();
}

10
您的代码无法fos在代码try块中使用。另外,new File()不是必需的。
Ludovic Guillaume 2014年

他添加了“ new File()”是一件好事。读者更容易知道有一个File构造函数可用。
布法罗

Android似乎需要这样做。
基思·霍利迪

可以通过在try-with-resources()内添加fos并删除最后的
代码
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.