试图从文件中读取。引发异常

时间:2010-12-02 16:36:39

标签: java swing file-io matrix

我试图从包含单个垂直数字文件的文件中读取,并用它们填充矩阵(由JTextField s组成),但是当我尝试set方法时,程序会抛出异常更改为第二行后

for(int a=0; a < i; a++) { 
    for(int b=0; b < i; b++){
        // x = raf.readLine();
        matrix[a][b].setText(raf.readLine());
    }
}

2 个答案:

答案 0 :(得分:2)

你可能想要更像下面的例子,使用WIDTHHEIGHT的一些合适的值。

for (int row = 0; row < HEIGHT; row++) {
    for (int col = 0 ; col < WIDTH; col++) {
        matrix[row][col].setText(raf.readLine());
    }
}

答案 1 :(得分:2)

您不应该从GUI类中读取文件。尝试通过创建用于读取文本文件的专用类来分离关注点。也许让您的文件阅读器类返回Iterator<String>行。现在在单元测试中测试文件读取器类,并确保它正确显示行。

然后做这样的事情:

Iterator<String> lines = yourHelperClass.getLines()
for(int a=0; a < i; a++) { 
    for(int b=0; b < i; b++){
        if(!lines.hasNext()){
            // not enough lines, probably throw an Exception here
        }
        matrix[a][b].setText(lines.next());
    }
}

通过这种方式,可以更容易地找出实际出现的问题。

推荐阅读:Coupling and Cohesion: The Two Cornerstones of OO Programming