是否可以在使用 FileWriter 写入文件时移动文件的内容?
我需要将数据常量写入文件的头部,如果这样做,它会覆盖文件。
我应该使用什么技术来做到这一点,或者我应该在每次文件写入时制作文件副本(顶部有新数据)?
问问题
209 次
2 回答
1
如果你想覆盖文件的某些字节而不是其他字节,你可以使用 seek 和 write 来做到这一点。如果您想更改文件中每个字节的内容(例如,通过在文件开头添加一个字节),那么您需要编写一个新文件,并可能在完成写入后重命名它。
想想“完成后偏移 x 处的字节内容是什么?”这个问题的答案。如果对于 x 的大部分可能值,答案是“不是以前的样子”,那么您需要一个新文件。
于 2010-11-01T16:41:42.657 回答
0
与其纠结于“我完成后偏移 x 处的字节内容是什么?”这个问题,不如让我们改变思维方式,问为什么文件系统或硬盘固件不能这样做:a)提供另一种访问文件的模式[比方说,内联] b)通过在前面或中间甚至在末尾添加的字节数增加文件的长度 c)将从横截面开始的每个字节移动newcontent.length 位置
在磁盘固件或文件系统实现级别处理这些操作会更容易和更快,而不是将这项工作留给应用程序开发人员。我希望文件系统编写者或硬盘供应商能尽快提供这样的功能。
问候,桑巴
于 2012-04-19T20:55:41.457 回答