如何通过java将数据写入文件?

时间:2009-12-31 08:36:23

标签: java java-io

我想创建一个包含以下三个函数的GUI应用程序:

  • 添加记录
  • 编辑记录
  • 删除记录

记录包含两个字段 - 名称和职业

应用程序有两个限制

  • 您无法使用数据库存储信息。你必须使用一个平面文件。
  • 不应为每次添加/删除操作重写总文件。

所以,我的问题在下面提到:

Q1。哪种文件格式会更好? (.xml或.csv或.txt或任何其他)

Q2。如何在不重写整个文件的情况下执行添加/删除操作?

3 个答案:

答案 0 :(得分:2)

您的问题的第二部分在此处得到解答:Best Way to Write Bytes in the Middle of a File in Java

至于格式 - 我会尽可能简单地使用。您不希望必须处理一堆标记处理,因为使用RandomAccessFile,您将直接转到字节位置。固定宽度样式格式是好的,因此根据记录号,您可以计算文件中记录或字段的起始位置,而无需读取文件中的所有内容。然后用空格或其他合适的字符将字段填充到固定宽度。

答案 1 :(得分:0)

我会使用CSV,压缩。它既可读又可在外部编辑。

如果您选择CSV,这可以提供帮助:http://javacsv.sourceforge.net/

你看这个吗? http://sourceforge.net/projects/flatworm/ 还要考虑Apache Derbi和HSQLDB

另一种解决方案是http://www.coyotegulch.com/products/jisp/index.html

你可以重新发明轮子,但只有在这是一个学术分配时才需要......

答案 2 :(得分:0)

鉴于不能重写整个文件,我建议使用RandomAccessFile,只允许您读写所需的记录。

对于文件格式,使用固定长度的二进制文件:ex:20个字符的名称,30的专业。 这将允许您使用RandomAccessFile的seek()方法直接访问您的数据。