将2D阵列传输到文件中并返回

时间:2016-01-05 08:46:26

标签: java arrays multidimensional-array filereader filewriter

我已经查看了类似的问题,但我仍然坚持使用这段代码。

public class MasterMindSaveLoad extends Board {
    public void saveGame() {
        ObjectOutputStream oos = new ObjectOutputStream(new FileWriter("saveGame.txt"));
            for (int i=0; i<numPegs; i++) {
                for (int j=0; j<numColours; j++) {
                    oos.writeObject(Board[i][j]);
                }
            }
            for (int i=0; i<numPegs; i++) {
                for (int j=0; j<numColours; j++) {
                    oos.writeObject(Feedback[i][j]);
                }
            }

        }
    public void loadGame(String savedGame) {
        try {

        } catch (MasterMindFileFormatException e) {

        } catch (IOException e) {

        }
    }
}

我已经给出了一个非常粗略的布局,用于将2D数组保存到文件中并从中读回。我不知道该怎么做,这和我到目前为止一样多。我必须实际保存两个2D数组,然后在阅读时,我必须将它们重新放回到自己的数组中。

1 个答案:

答案 0 :(得分:2)

您可以将2D数组作为对象处理

Board[][] board = new Board[][]; 
Object ob = board;

然后您可以使用ObjectInputStream

简单地序列化和反序列化此对象
ObjectOutputStream oos = new ObjectOutputStream(new FileWriter("saveGame.txt"));
oos.writeObject(board); //simply write the entire object

检索刚回读的数据:

ObjectInputStream ois = new ObjectInputStream(new FileReader("saveGame.txt"));
Object o = ois.read();
board = (Board[][])o; //cast back to 2d array

将此技术用于Feedback[][]

查看本教程:http://www.journaldev.com/2452/java-serialization-example-tutorial-serializable-serialversionuid