【问题标题】:How to write data to a file through java?如何通过java将数据写入文件?
【发布时间】:2010-12-31 08:52:11
【问题描述】:

我想制作一个包含以下三个功能的 GUI 应用程序:

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

一条记录包含两个字段 - 姓名和职业

应用有两个限制

  • 您不能使用数据库来存储信息。您必须使用平面文件。
  • 不应为每个添加/删除操作重写整个文件。

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

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

第二季度。我们如何在不重写整个文件的情况下执行添加/删除操作?

【问题讨论】:

标签: java java-io


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    鉴于不能重写整个文件,我建议使用RandomAccessFile,它允许您只读取和写入您想要的记录。

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

    【讨论】:

      【解决方案3】:

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

      如果您选择 CSV,这会有所帮助:http://javacsv.sourceforge.net/

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

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

      您可以重新发明轮子,但只有当这是一项学术任务时才需要这样做...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        • 1970-01-01
        相关资源
        最近更新 更多