【问题标题】:How to overwrite some bytes in a file?如何覆盖文件中的某些字节?
【发布时间】:2010-11-19 15:34:52
【问题描述】:

我使用java.io.FileFileInputStream & FileOutputStream 创建了一个文件。假设我想更改文件中某些字节的值(例如从字节 15 到 35)而不更改文件的大小。我尝试创建一个RandomAccessFile 对象,然后使用RandomAccessFile.seek 移动到第15 个字节,写入我的新字节,然后关闭文件。该文件已更改其大小。这种方法有什么问题,如何才能成功?

【问题讨论】:

  • 是的,请向我们展示您正在使用的代码片段。
  • 我假设您没有尝试同时使用 FileOutputStream 和 RandomAccessFile。
  • 如果你单独使用 RandomAccessFile,改变它的唯一方法是使用 setLength()。除非您使用它,否则大小不应更改。
  • @Peter,如果你写到最后,大小也会增加。
  • @Peter 你假设错了。谢谢你,我已经修好了。非常感谢。

标签: java randomaccessfile


【解决方案1】:

您确定要向 RandomAccessFile 写入一个字节吗?如果您正在调用该方法:

file.write(35);

然后它实际上将35 写为int,即4 个字节。如果你想写一个字节试试:

file.writeByte(35);

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 2011-11-09
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2018-10-24
    相关资源
    最近更新 更多