java - 使用 Scanner 时添加 null 值

标签 java java.util.scanner

我正在尝试将文本文件中的所有数据放入一个字符串变量中,据我所知,它运行良好,但输出显示以下内容:

nullRead File Test

我曾经使用replaceAll方法来尝试删除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();
    }

最佳答案

作为一个对象 fileData默认为null,因此它的初始String值被转换为字符串文字“null”按照JLS 15.18.1当附加到另一个字符串时。因此需要初始化:

private String fileData = "";

考虑在此处使用StringBuilder

关于java - 使用 Scanner 时添加 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083110/

相关文章:

java - 我无法弄清楚的扫描仪错误 : NoSuchElementException

构造函数中的 Java Scanner 对象?

java - FileChannel 和 FileInputStream 中 read(ByteBuffer) 和 read(byte[]) 之间的区别

java - 如何读取 Shipilev 的 ForkJoin 论文中的图表?

java - 使用递归查找整数 ArrayList 中的最大值

java - 如何在没有地址栏的情况下获取浏览器窗口大小Java?

java - 从菜单选择读取并打印文件

使用自定义文件的 Java Preferences API?

java - 如何使用多台扫描仪

java - 在 Java 中打印一段单词中的每个单词,同时使用 Scanner 类跳过一些单词