将Byte []附加到二进制文件的末尾

joh*_*mos 6 java append dataoutputstream

我正在解析一个文件.我正在创建一个新的输出文件,并且必须向其添加'byte []数据.从那里我需要将许多其他'byte []数据附加到文件的末尾.我想我会让用户为输出文件名添加一个命令行参数,因为我已经让他们提供了我们正在解析的文件名.如果文件名尚未在系统中创建,我觉得我应该生成一个.

现在,我不知道该怎么做.我的程序当前正在使用DataInputStream来获取和解析文件.我可以使用DataOutputStream追加吗?如果是这样,我想知道如何附加到文件而不是覆盖.

Jon*_*eet 24

如果是这样,我想知道如何附加到文件而不是覆盖.

这很简单 - 你甚至不需要DataOutputStream.只要FileOutputStream是好的,使用的构造与append参数:

FileOutputStream output = new FileOutputStream("filename", true);
try {
   output.write(data);
} finally {
   output.close();
}
Run Code Online (Sandbox Code Playgroud)

或者使用Java 7的try-with-resources:

try (FileOutputStream output = new FileOutputStream("filename", true)) {
    output.write(data);
}
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因确实需要DataOutputStream,您可以FileOutputStream以相同的方式包装打开.