使用Scanner时添加null值

时间:2014-11-22 22:09:36

标签: java java.util.scanner

我试图将文本文件中的所有数据放入一个具有我所知的单个String变量中,并且运行正常,但输出显示如下:

nullRead File Test

我曾经使用replaceAll方法来尝试删除null,但它不起作用。为什么这个null显示,我怎么能摆脱它呢?

相关源代码:

private static final long serialVersionUID = 1L;
    private Scanner readWatched;
    String fileData;

    public void handleFile() {
        try {
            readWatched = new Scanner(new File("E:\\Watched.txt"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    public void readFile() {
        try {
            while (readWatched.hasNext()) {
                fileData += readWatched.next() + " ";
            }
            fileData.replaceAll("null", " ");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(fileData);
    }

    public void closeFile() {
        readWatched.close();
    }

1 个答案:

答案 0 :(得分:1)

由于Object fileData默认为null所以其初始String值会根据JLS 15.18.1转换为字符串文字"null"附加到另一个String。因此需要初始化:

private String fileData = "";

考虑在这里使用StringBuilder