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

时间:2013-06-04 20:52:15

标签: java append dataoutputstream

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

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

3 个答案:

答案 0 :(得分:20)

  

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

这很简单 - 你甚至不需要DataOutputStream。使用the constructor with an append parameter

只需FileOutputStream即可
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

答案 1 :(得分:2)

Files.write(new Path('/path/to/file'), byteArray, StandardOpenOption.APPEND);

这是用于字节附加的。不要忘记异常

答案 2 :(得分:1)

File file =new File("your-file");
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(your-string);
bufferWritter.close();

当然把它放在try-catch块中。