我知道如何使用printWriter很容易地将数据保存到txt文件等。
我有一个mineSweeper游戏,它可以保存名称,登机口,完成所需的时间以及使用了多少枚地雷;该文件如下所示:
名称
10×10
00:00:01
20
间隙
重复
但是尝试对此进行排序将是一项非常困难的考验,因为保存在文件中的这些数据在技术上都不相关。
是否有任何方法可以保存这些数据,因此它们是相关的。
我当时正考虑将它保存在一个带有中断字符的大字符串中,例如
之间 name + "!!" + boardSize + "!!" + time + "!!" + mines + "!?" < as the end break
任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
您可以将数据保存为xml:
<root>
<name>...</name>
<boardsize>...</boardsize>
.
.
.
</root>
这样,当您从文件中提取数据时,您将与数据保持关系
答案 1 :(得分:0)
执行此操作的最简单方法可能是sqlLite,它是可移植的并且相当直接使用,Tutorial point有一个很好的示例,说明如何设置和使用它 - http://www.tutorialspoint.com/sqlite/sqlite_java.htm
如果您想在seperare表中存储相关数据,可能还值得研究联接 - http://www.tutorialspoint.com/sqlite/sqlite_using_joins.htm
答案 2 :(得分:0)
保持简单,创建游戏会话的model
定义一个类,将其序列化为 json
{name:xoce,size:10x10,时间:00:00:01,地雷:20}
当此步骤准备就绪时,将每个游戏结果附加到Txt文件,如果要排序,则读取文件,将其反序列化为json列表,并使用匿名比较器对列表进行排序,以便您可以使用最佳排序标准
答案 3 :(得分:0)
如何创建包含所有必要属性的name
类 - boardSize
,Serializable
,... - 并实施Comparable<T>
和{{1}所以你可以稍后在数组中对它进行排序。
然后,您只需使用ObjectOutputStream
将其保存到文件中即可。
List<Game> gamesList = ...; // I suppose you have a list of games you want to store
ObjectOutputStream oos = new ObjectOutputStream(...);
oos.writeObject(gamesList);
...