java - 扫描仪仅读取文本文件的第一行

标签 java file for-loop java.util.scanner

这是我的代码

    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/

相关文章:

file - Erlang 奇怪的函数行为

powershell - 如何确认文件不存在,而不是拒绝访问?

python - 仅使用字母的名称输入验证

java - 使用 Hibernate/JPA 将 UUID 以二进制形式存储在 Mysql 数据库中以提高性能

java - SOAP xml 作为返回 - Android

java - 如何从本地主机访问本地文件

java - 创建用于创建文件的构造函数

java - 在 selenium 中使用 Internet Explorer 浏览器时无法启动 IE 浏览器 - IllegalStateException

javascript - 基本 While 循环查询 - 为什么记录 "1"?

Python 属性错误 : 'dict' object has no attribute 'append'