我想制作一个包含以下三个功能的 GUI 应用程序:
- 添加记录
- 编辑记录
- 删除记录
一条记录包含两个字段 - 姓名和职业
申请有两个限制
- 您不能使用数据库来存储信息。您必须使用平面文件。
- 不应为每个添加/删除操作重写总文件。
所以,我的问题在下面提到:
Q1。哪种文件格式会更好?(.xml 或 .csv 或 .txt 或任何其他)
Q2。我们如何在不重写整个文件的情况下执行添加/删除操作?
您的问题的第二部分在这里得到解答:Best Way to Write Bytes in the Middle of a File in Java
至于格式 - 我会尽可能简单。您不想处理一堆标记处理,因为使用 RandomAccessFile,您将直接进入一个字节位置。固定宽度的样式格式会很好,这样可以根据记录编号计算文件中记录或字段的起始位置,而无需读取文件中的所有内容。然后将使用空格或其他一些合适的字符将字段填充到固定宽度。
我会使用压缩的 CSV。它既可读又可在外部编辑。
如果您选择 CSV,这会有所帮助:http: //javacsv.sourceforge.net/
你看过这个吗?http://sourceforge.net/projects/flatworm/ 还可以考虑 Apache Derbi 和 HSQLDB
另一个解决方案是这个http://www.coyotegulch.com/products/jisp/index.html
您可以重新发明轮子,但只有在这是一项学术任务时才需要这样做......
鉴于不得重写整个文件,我建议使用RandomAccessFile允许您仅读取和写入所需的记录。
对于文件格式,二进制文件,使用固定长度的记录:例如:姓名为 20 个字符,职业为 30 个字符。这将允许您使用 RandomAccessFile 的 seek() 方法直接访问您的数据。