我试图从包含单个垂直数字文件的文件中读取数据,并用它们填充矩阵(由JTextField
组成),但是当我尝试set方法时,程序在更改后引发异常第二排试图从文件读取。抛出异常
for(int a=0; a < i; a++) {
for(int b=0; b < i; b++){
// x = raf.readLine();
matrix[a][b].setText(raf.readLine());
}
}
我试图从包含单个垂直数字文件的文件中读取数据,并用它们填充矩阵(由JTextField
组成),但是当我尝试set方法时,程序在更改后引发异常第二排试图从文件读取。抛出异常
for(int a=0; a < i; a++) {
for(int b=0; b < i; b++){
// x = raf.readLine();
matrix[a][b].setText(raf.readLine());
}
}
你可能想要更多的东西像下面的例子中,使用一些适当的值。WIDTH
和HEIGHT
。
for (int row = 0; row < HEIGHT; row++) {
for (int col = 0 ; col < WIDTH; col++) {
matrix[row][col].setText(raf.readLine());
}
}
您不应该从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
你看到什么异常,你能否提供堆栈跟踪。 – 2010-12-02 16:39:03
什么是raf?我是什么?什么是矩阵?多一点的代码和/或堆栈跟踪会有帮助... – Fortega 2010-12-02 16:43:36
解决了它!问题是我在第二个“for”完成后正在做raf.close()。 – Crox 2010-12-03 16:40:47