这是我的代码
public static void main(String[] args) {
File source = //
Scanner s = null;
int lineNumber =0;
ArrayList<ArrayList<Integer>> tagsArray = new ArrayList<>();
try {
s= new Scanner(source);
while (s.hasNext()) {
String[] cols = s.nextLine().split(" ");
for (int i = 0; i < cols.length; i++) {
if (cols[i].equals("1"))
tagsArray.get(i).add(lineNumber);
}
lineNumber++;
}
} catch (Exception e) {
// TODO: handle exception
}
}
当我删除 for 语句时,它会读取整个文本文件,但当我使用它时,它只读取第一行 为什么?
最佳答案
我猜你会得到一个Exception
,但是你捕获并隐藏它而不是处理它。 这非常糟糕!您至少应该打印异常的堆栈跟踪。
您尝试访问:
tagsArray.get(i).add(lineNumber);
当 tagsArray
是空的。您需要实例化每个 ArrayList<Integer>
里面tagsArray
在访问它之前。
关于java - 扫描仪仅读取文本文件的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166950/