将2D数组存储到文件中

时间:2012-09-18 01:55:02

标签: java arrays multidimensional-array

我正在尝试将此NUMBERSS[r][c]数据类型的int存储到程序将创建的文件中,然后将每个值存储在文件中。我尝试了,但它给了我奇怪的并发症。

Scanner scan = new Scanner(new File("NUMBERSS.txt"));    
// Read each row.    
for(int r=0;r<NUMBERSS.length;r++)  
    for(int c=0;c<NUMBERSS[r].length;c++){ 
        System.out.print(NUMBERSS[r][c] + "\t");  
        System.out.print("\n");  
        // For each number in the column, read a number    
        // and put it in the array    
        NUMBERSS[r][c] = scan.nextInt();  
        scan.nextLine(); 
    }
}

3 个答案:

答案 0 :(得分:3)

你想要的是将数组的内容写入文件并稍后阅读。

保存到文件

由于array也是一个对象,您可以使用ObjectOutputStream进行保存。

ObjectOutputStream oos = new ObjectOutputStream(new FileWriter("NUMBERS.DATA"));
int[][] NUMBERS;  // Populate it.
oos.writeObject(NUMBERS);

这会将数组保存到文件NUMBERS.DATA

从文件中读取

从文件中读取也很简单。

ObjectInputStream ois = new ObjectInputStream(new FileReader("NUMBERS.DATA"));
int[][] NUMBERS = (int[][])ois.readObject();

这将从文件中读取数组。

答案 1 :(得分:1)

保存到文件

ObjectOutputStream oos = new ObjectOutputStream(new FileWriter("NUMBERS.DATA"));
int[][] NUMBERS;  // Populate it.
oos.writeObject(NUMBERS);'

ObjectOutputStream没有带FileWriter作为参数的构造函数。

答案 2 :(得分:0)

可能是ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("NUMBERS.DATA"));而不是ObjectOutputStream oos = new ObjectOutputStream(new FileWriter("NUMBERS.DATA"));。因此,https://stackoverflow.com/users/1026805/sri-harsha-chilakapati给出的答案的一些修改版本将是:

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("NUMBERS.DATA"));
int[][] NUMBERS = {{2, 3, 5}, {7, 11, 13}}; 
oos.writeObject(NUMBERS);