Java - 覆盖文件的特定部分

标签 java file io random-access

我想使用 Java 更新文本文件的特定部分。我希望能够扫描文件并选择要更新的特定行,有点像在数据库中,例如给定文件:

ID Value
1  100
2  500
4  20

我想插入 3 并更新 4,例如

ID Value
1  100
2  500
3  80
4  1000

有没有办法完成这个(看似)简单的任务?我知道您可以附加到文件,但我对随机访问更感兴趣

最佳答案

I know you can append to a file, but I am more interested in a random access

您正在尝试在文件中间插入和删除字节。你不能那样做。文件系统(通常)根本不支持这一点。您可以覆盖特定字节,但无法插入或删除它们。

如果您的记录是固定长度(以字节为单位),您可以通过随机访问来更新特定记录,但情况似乎并非如此。

您可以将整个文件加载到内存中,或者从原始文件中读取,并根据每行的情况将旧数据或新数据写入新文件。

关于Java - 覆盖文件的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400591/

相关文章:

c++ - 如果不存在,为什么 getline 返回空行

ios - 我可以使用dispatch_io检测给定目录中的文件创建吗?

java - ArrayList 对象分配给 LSt 对象内部工作

java - java中的四舍五入价格数字

java - Spring 上下文和 Bean 生命周期回调 : practical examples of usage

php - ZipArchive::close():重命名临时文件失败:权限被拒绝

c++ - 列出文件夹中的所有文件返回空列表

php - 将文件加载到 PHP 数组中,最好的方法是什么?

Java, "Scanner"的内存使用

java - 如果我想快速失败,ActiveMQ 的最佳连接 URI 是什么?