我做的一个功能有点问题。我希望每次给这个函数一个字符串时,它都会将我保存到同一个文件中的一个新行,但实际上现在只保存我给出的最后一个字符串。这就像一遍又一遍地覆盖,需要帮助
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。
有谁会怎么做吗?谢谢
发布于 2014-10-07 19:29:06
你说得对,你覆盖了这个文件。如果您用FileOutputStream打开它,它将从一开始就开始。您可以通过在文件(名称)之后指定附加模式来保持流打开或使用true。
BufferedOutputStream out = new BufferedOutputStream(
new GZIPOutputStream(
new FileOutputStream(newFile, true)
)
);使用GZIPOutputStream,如果您在每一行上打开一个新流,就会有相当大的开销,但是它被定义为以这种方式工作。(同样:保持打开也有助于这一点)。
https://stackoverflow.com/questions/26243654
复制相似问题