gpt4 book ai didi

java - 将文件读入二维数组

转载 作者:行者123 更新时间:2023-12-01 23:57:20 24 4
gpt4 key购买 nike

我正在尝试将文件读入二维数组。当我读到第一部分中的值时,这些值是正确的。当我写出来时,这些值都是“10”。我该如何解决这个问题?

public static void readagain() {

try {
InputStream is = new FileInputStream("C:\\test.new");
int m = 16;
int n = 16;
int[][] a = new int[m][n];
int value=0;

while ((value = is.read()) != -1) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
try{
a[i][j] = value;
System.out.println("number is "+ a[i][j]);
}
catch (Exception e) {
e.printStackTrace();
}
}//j
} //i
}

for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.println("number is "+a[i][j]);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}

最佳答案

您的第一个循环看起来会用最后一个值填充整个数组,并且它们都是相同的。

似乎正在发生的事情是,您获取一个又一个值,然后每次都覆盖数组中的所有值。

我建议只使用 1 个循环,并计算 ij 应该是什么:

for( int x=0-; (value = is.read()) != -1) && x < m*n; x++) { 

int i = x/n;
int j = x%n;
try{
a[i][j] = value;
System.out.println("number is "+ a[i][j]);
}
catch (Exception e) {
e.printStackTrace();
}
}

关于java - 将文件读入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com