java - 将文件转换为可访问的对象

标签 java file randomaccessfile

摘要:

我正在尝试编写一个基于单独文件中包含的信息的实用程序。该对象必须能够快速检索并快速更新物理文件上的任何信息。

详细信息:

该文件是一个普通的 ANSI 编码文件,应该存储 SI 系统中规定的物理量的定义。我真正想要的是我应该能够在需要时读取和写入对定义的更改。我将使用标记(如“:”)来获取标题和定义,如:

Length:metre:m:"..length of path traveled by light in vacuum in 
1/299792458th of a second"

等等。

那么在这种情况下扩展RandomAccessFile是一个选项吗?它会帮助我快速检索和同步数据吗?我应该使用另一种方法吗?

最佳答案

如果您想要这些东西,那么我建议您使用嵌入式 ACID 数据库,例如 H2:

  • 保证您所做的更改不会丢失
  • 让多个程序访问该信息

这是因为使用像 RandomAccessFile 这样的低级工具来正确地执行此操作是相当困难的。在嵌入式数据库中存储持久应用程序状态是常见的做法。 H2 可能是纯 Java 实现的数据库中最受欢迎的。

有关如何实际执行此操作,请参阅:Embedding the Java h2 database programmatically

你有可能。如果您不熟悉关系数据库和 SQL,想查看它们的介绍。

关于java - 将文件转换为可访问的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092594/

相关文章:

java - Jbehave - @beforeStories 不起作用

java - 为什么我的字体无法绘制? (或加载?)——Java

java - 查询缓存如何处理标量结果?

java - 如何使用 AspectJ 添加访问检查到方法(并基于 "advised"方法创建新方法)?

php - 使用 class.upload.php 编辑上传的图像

Java 随机文件访问 : Get byte offset of line start

java - 即使文件夹存在, file.listFiles() 返回 null

c++ - 从文件读取到 C++ 中的数据结构

java - 为什么随机访问文件在我的 UTF-8 文本文件中读取“ï”作为第一个字符?

java - if 语句中的问题