使用FileWriter写入文件时是否可以移动文件内容?
我需要将数据常量写入文件的头部,如果我这样做,它会覆盖文件
我应该使用什么技术来执行此操作,还是应该在每次写入文件时制作文件副本(新数据都在顶部)?
答案 0 :(得分:1)
如果要覆盖文件的某些字节而不覆盖其他字节,可以使用搜索和写入来执行此操作。如果要更改文件中每个字节的内容(例如,通过在文件的开头添加单个字节),则需要编写新文件,并在编写完文件后对其进行重命名。
想想问题的答案“我完成后在偏移x处的字节内容是什么?”。如果,对于x的大部分可能值,答案是“不像以前那样”那么你需要一个新文件。
答案 1 :(得分:0)
让我们自己回答“在我完成后在偏移x处字节的内容是什么?”的问题,让我们改变心态并问为什么文件系统或硬盘固件不能做:a)提供另一种访问文件的模式[比如说,内联] b)增加文件的长度,增加前面或中间甚至最后添加的字节数c)移动从开始的每个字节newcontent.length位置的横截面
在磁盘固件或文件系统实现级别处理这些操作会更容易,更快,而不是将该作业留给应用程序开发人员。我希望文件系统编写者或硬盘供应商能尽快提供这样的功能。
此致 桑巴