java - 将 Byte[] append 到二进制文件的末尾

标签 java append dataoutputstream

我正在解析一个文件。我正在创建一个新的输出文件,并且必须向其中添加“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/

相关文章:

java - 使用java应用程序模拟按键

java - 布局似乎有问题,JButton 在调整窗口大小时显示意外行为

java - Spring 试图从里程碑存储库中提取快照

java - 如何在java中创建xml文件并将用户输入的数据 append 到其中

objective-c - 遍历数组并 append 到 Objective-C 中的字符串

java - 通过 JAVA DataOutputStream 发送 key

java - 正则表达式:格式化/多种格式

Jquery append <select> 在 IE7 中不起作用,但在 Firefox 中起作用

java - 在 DataOutputStream 上同步

java - DataOutputStream 给我一个 'java.io.IOException: unexpected end of stream' ?