我目前正在开发一个基本的国际象棋程序,该程序允许用户保存当前游戏并稍后再返回并从上次停止的地方接机。 唯一的问题是我不知道如何将2d数组保存到磁盘文件。 我感到更加困惑的是,该代码集需要单独写入每个值,并且如果该值为" null",则不输出任何内容。 我环顾四周,找不到任何能真正回答我问题的东西。 我在编码方面还很陌生,所以如果这是一个基本问题,我深表歉意。 我当前的代码集是:
Path file = Paths.get("fileName");
Files.write(file, lines, Charset.forName("UTF-8"));
PrintWriter save = new PrintWriter(new FileOutputStream(("fileName")));
Path.close();
在第一个实例中:Java中的数组总是对象。因此,您只需使用Java序列化即可一次性读取/写入整个阵列。换句话说:您告诉Java将整个数组转换为字节流;然后将这些字节写入文件。后来,您又读了回来。而且您完全不必担心空插槽。
为此,您需要做的所有事情:确保其中具有二维数组的类具有可序列化的。
如上所述,这是"简单"的解决方案。对于学习,您当然可以实施自己的策略。关键是:在Java中没有"默认"的写入数组数据的方法。您必须编写采用一/二/任意暗数组的代码。创建一个表示形式...将其写入文件。然后您的代码便可以撤消该操作。一些伪代码给你一个想法:
np = compute number of pieces currently found on the board