首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BufferedOutputStream多行写入文件

BufferedOutputStream多行写入文件
EN

Stack Overflow用户
提问于 2014-10-07 19:25:33
回答 1查看 3.3K关注 0票数 2

我做的一个功能有点问题。我希望每次给这个函数一个字符串时,它都会将我保存到同一个文件中的一个新行,但实际上现在只保存我给出的最后一个字符串。这就像一遍又一遍地覆盖,需要帮助

代码语言:javascript
复制
public void WritingGZFile(String directory, String linesWithPattern, String newFile) throws IOException
    {
        newFile = directory + '\\' + newFile;
            BufferedOutputStream out = new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(
                    newFile)));
            out.write(linesWithPattern.getBytes());
            out.write("\r\n".getBytes());
            out.close();
    }

例如,在BufferedWriter中有一个名为newLine的方法来帮助实现这一点。

但是由于我想使用GZIPOutputStream类,所以我需要BufferedOutputStream。

有谁会怎么做吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-07 19:29:06

你说得对,你覆盖了这个文件。如果您用FileOutputStream打开它,它将从一开始就开始。您可以通过在文件(名称)之后指定附加模式来保持流打开或使用true

代码语言:javascript
复制
BufferedOutputStream out = new BufferedOutputStream(
                                 new GZIPOutputStream(
                                       new FileOutputStream(newFile, true)
                                     )
                                );

使用GZIPOutputStream,如果您在每一行上打开一个新流,就会有相当大的开销,但是它被定义为以这种方式工作。(同样:保持打开也有助于这一点)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26243654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档