【问题标题】:Appending Byte[] to end of a binary file将 Byte[] 附加到二进制文件的末尾
【发布时间】:2013-05-31 09:44:09
【问题描述】:

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

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

【问题讨论】:

  • 关键是如何打开文件。您必须打开附加与简单输出。

标签: java append dataoutputstream


【解决方案1】:

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

这很容易 - 你甚至不需要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。

【讨论】:

  • 非常感谢!第二个真正的参数是我假设的附加选项?刚刚检查过,是的!
  • @johnstamos:是的——点击答案中的链接。
  • 谢谢。这也适用于安卓!!加分! :-)
【解决方案2】:
Files.write(new Path('/path/to/file'), byteArray, StandardOpenOption.APPEND);

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

【讨论】:

  • 欢迎来到 SO,感谢您提供答案。这需要在低质量帖子队列中进行审查,因为它只是一个代码答案,我们并不喜欢这些。如果你想加入,那么欢迎你,但你必须在你的答案上付出更多的努力。我们希望代码周围有关于它如何解决 OP 问题的解释。如果你愿意,你可以阅读How to Ask 和How to Answer 来澄清一下。你的时间。
  • Files.write(Paths.get("/var/error.txt"), byteArray, StandardOpenOption.APPEND);使用这个sn-p
【解决方案3】:
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 块中。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多