【问题标题】:Create a file from a ByteArrayOutputStream从 ByteArrayOutputStream 创建文件
【发布时间】:2013-07-03 12:52:11
【问题描述】:

如果我只有ByteArrayOutputStream,谁能解释我如何获取文件对象。如何从ByteArrayOutputStream 创建文件?

【问题讨论】:

    标签: java file file-io io bytearrayoutputstream


    【解决方案1】:

    您可以使用FileOutputStreamwriteTo 方法来做到这一点。

    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 块;)stackoverflow.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
    猜你喜欢
    • 1970-01-01
    • 2020-04-26
    • 2021-12-23
    • 1970-01-01
    • 2018-01-13
    • 2018-11-07
    • 2019-03-11
    相关资源
    最近更新 更多