偶正在做一个小游戏的战绩排行榜部分,本来想用一个容器类来装载玩家的名字和成绩,但是发觉游戏推出后再打开时,容器里面的东西就会消失了,所以想到应该把玩家的名字和成绩保留在一个文件上,请问这个文件是用TXT文件还是其他文件?然后如何读取,读取的时候怎样按照成绩来排序?
    请问用配置文件的形式可实现以保存跟读取玩家名字和成绩的功能吗?
    谢谢~

解决方案 »

  1.   

    用文件当然可以。读取的时候,以List存,然后可以用Collections.sort来排序。保证退出前文件已经保存了就OK。
      

  2.   

    txt可以。如果想安全一点,可以用串行化对象输出
      

  3.   

    properties文件键值对挺适合用来存取
    http://www.blogjava.net/action/archive/2006/08/21/64804.html至于读取的键值对进行排序,利用Map作为示例,对Map之Entry排序:
    /**
     * @param map
     * @return the entries of the map after being sorted
     */
    @SuppressWarnings("unchecked")
    public static Map.Entry[] getSortedHashtableByValue(Map<String, Integer> map) {
        Set set = map.entrySet();
        Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
        Arrays.sort(entries, new Comparator() {
            public int compare(Object arg0, Object arg1) {
                Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString());
                Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString());
                return key1.compareTo(key2);
            }
        });    return entries;
    }
      

  4.   

    推荐properties文件key就用排名(1,2,3,4,5...)
    还比较容易修改
      

  5.   

    谢谢各位回复,现在还有个问题就是我用SWING做界面,这个排行榜应该用用什么显示出来比较好?JTABLE还是TEXTAREA?
      

  6.   

    纯显示吗?用Label数组不是更好?
      

  7.   

    是的,游戏菜单上有个按钮“HIGHSCORE”,按一下就能显示积分榜。Label数组这个东西不熟悉啊,请问这东西在SWING里面叫什么名字啊?
      

  8.   

    那玩家的名字呢?我想用玩家的名字当KEY行不行?
      

  9.   

    哈,用XML吧,这是文件型数据库
    这东东又是跨平台的
    它可以使用Java的标准类库进行序列化
    XMLEncode跟XMLDecode,你可以查JAVA的API
    它是长期系列化的最好办法,不需要写太多的代码
    就能把一个XML文件转成Java Object
      

  10.   

    谢谢建议,但是JAVA对XML的操作,我不会哦,请问有没有什么例子给我看看啊?还有,我对序列化这东西部熟啊.........
      

  11.   

    排名 还是用JTable吧  看起来也整齐  建个model  放到JLable里 加好了  不建立模型也可以
      

  12.   

    我也试过用JTABLE,但是JTABLE初始化的时候怎样排序呢?
      

  13.   

    现在已经定了用JTABLE来做了,本来想截个图放上来给大家研究下,但是发现这里好像没有从自己的机子上传图片的功能,只能文字描述了,希望能明白:
      我的积分排行榜分两部分,左边是游戏不同的难度,放在一个JLIST里面,右边就是TABLE,里面放积分,现在有个问题就是,我怎么通过点击JLIST里面的不同游戏难度,然后在JTABLE里面显示不同的排行榜呢?
      

  14.   

    最好使用数据库,优点就不必说了。如果非得用类txt文件的话,那推荐使用xml
      

  15.   


    这个还要讲吗?选择list时会产生事件,通过这个事件来重新搜索在该等级下的记录,计算,再将结果显示到JTable
      

  16.   

    我用htm存储的内容,但是操作完之后,在htm文件中的内容不能自动更新,必须手动更新,但是结果在控制栏里面可以看到。我也是通过对话框的模式显示的排行榜。