写作时移动文件?

时间:2010-11-01 16:35:06

标签: java indexing byte filewriter

使用FileWriter写入文件时是否可以移动文件内容?
我需要将数据常量写入文件的头部,如果我这样做,它会覆盖文件 我应该使用什么技术来执行此操作,还是应该在每次写入文件时制作文件副本(新数据都在顶部)?

2 个答案:

答案 0 :(得分:1)

如果要覆盖文件的某些字节而不覆盖其他字节,可以使用搜索和写入来执行此操作。如果要更改文件中每个字节的内容(例如,通过在文件的开头添加单个字节),则需要编写新文件,并在编写完文件后对其进行重命名。

想想问题的答案“我完成后在偏移x处的字节内容是什么?”。如果,对于x的大部分可能值,答案是“不像以前那样”那么你需要一个新文件。

答案 1 :(得分:0)

让我们自己回答“在我完成后在偏移x处字节的内容是什么?”的问题,让我们改变心态并问为什么文件系统或硬盘固件不能做:a)提供另一种访问文件的模式[比如说,内联] b)增加文件的长度,增加前面或中间甚至最后添加的字节数c)移动从开始的每个字节newcontent.length位置的横截面

在磁盘固件或文件系统实现级别处理这些操作会更容易,更快,而不是将该作业留给应用程序开发人员。我希望文件系统编写者或硬盘供应商能尽快提供这样的功能。

此致 桑巴