【发布时间】:2012-10-26 20:37:29
【问题描述】:
我需要就地修改文件的特定内容。
我确实不想创建一个新文件并重写旧文件。而且文件很小,每个最大只有几 MB。
对于那些想知道的人(尽管我不确定这是否与 OP 有关),我需要修改属于版本控制的文件并且需要修改只读版本。就地进行修改要简单得多。
Java api可以做到这一点吗?
如果没有,是否有提供此功能的库?
【问题讨论】:
-
为什么不想创建一个新文件来替换旧文件?这在出现故障时更加健壮,因为如果原始文件在中间失败,您还没有部分覆盖原始文件。
-
您在寻找什么级别的 API?您可以使用原始字节,还是希望能够将其作为文本进行操作、插入/删除/修改字符串等?
-
您最好从旧文件写入新文件,删除旧文件,然后重命名新文件。如果您尝试在文件中间添加更多信息,则会损坏文件内容。更好的是删除 .old 文件并使用 .old 扩展名重命名旧文件。这样,如果您的 I/O 中断,您不会丢失文件。
-
" 我需要修改属于版本控制的文件,需要修改只读版本" -- 只读意味着无法写入文件(或删除),无论您是否在原地执行此操作。
标签: java file-io inputstream nio