为什么我无法在Java中将文本文件中的行添加到ArrayList中?

时间:2016-10-18 01:21:14

标签: java file arraylist java.util.scanner

我在下面有以下代码。如果我注释掉stringList.add(row);我可以让它打印文档的行(带有空格的5行文本)。如果我没有对它进行评论,我会打印一行并且为空。我已经查询了我可以上网的所有内容,但我不明白为什么会发生这种情况!

package examples.files;

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

/**
 * @author 
 *
 */
public class ReadFileUsingScanner {
    static ArrayList<String> stringList = null;
    /**
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) {
        Scanner scanner = null;

        try {
            scanner = new Scanner(new File("customers.txt"));

            while (scanner.hasNext()) {
                String row = scanner.nextLine();
                System.out.println(row);
                stringList.add(row);
            }
        } catch(Exception e) {
            System.out.println(e.getMessage());
        } finally {
            if (scanner != null) {
                try {
                    scanner.close();
                } catch (Exception e) {}
            }
        }
    }

}

您不必解决代码问题,但我想了解其根本原因以及它无法解决的问题。

2 个答案:

答案 0 :(得分:4)

您的arrayList未初始化。改为

static ArrayList<String> stringList = new ArrayList<String>();

答案 1 :(得分:0)

错误是NPE(NullPointException)。

下次出现错误时,您可能不需要在StackOverFlow上询问问题。逐行调试IDE的调试器功能。您将得到答案。