我正在解析一个文件。我正在创建一个新的输出文件,并且必须向其中添加“byte[] 数据”。从那里我需要将许多其他“byte[] 数据” append 到文件末尾。我想我会让用户为输出文件名添加一个命令行参数,因为我已经让他们提供了我们正在解析的文件名。也就是说,如果系统中尚未创建文件名,我觉得我应该生成一个。
现在,我不知道该怎么做。我的程序当前正在使用 DataInputStream 来获取和解析文件。我可以使用 DataOutputStream 追加吗?如果是这样,我想知道如何 append 到文件而不是覆盖。
最佳答案
If so I'm wondering how I would append to the file and not overwrite.
这很简单 - 您甚至不需要 DataOutputStream
。只需 FileOutputStream
就可以了,使用 the constructor with an append
parameter :
FileOutputStream output = new FileOutputStream("filename", true);
try {
output.write(data);
} finally {
output.close();
}
或者使用 Java 7 的 try-with-resources :
try (FileOutputStream output = new FileOutputStream("filename", true)) {
output.write(data);
}
如果您确实出于某种原因需要DataOutputStream
,您可以只包装一个以相同方式打开的FileOutputStream
。
关于java - 将 Byte[] append 到二进制文件的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927263/