使用扫描仪读取文件时,为什么扫描仪必须在方法中?

时间:2017-08-27 11:20:20

标签: java file stack java.util.scanner

我有一个打印机文件,可以打印文件的所有内容。我知道,先进的东西。 现在我可以通过在我的方法中声明扫描程序对象来调用文件作为调用中的对象变量来使程序成功运行。

我的问题是,当我在构造函数中声明文件和扫描程序时,它只返回给我文件的名称。不确定我是否解释得那么好。

public class Printer {
private File file;
private Scanner reader;


public Printer(String fileName) {
    this.file = new File(fileName);
    this.reader = new Scanner(fileName);
}

public void printContents() throws FileNotFoundException {

    while (reader.hasNextLine()) {
        String line = reader.nextLine();
        System.out.println(line);
    }

    reader.close();
}

然后我的主要

    public class Main {

public static void main(String[] args) throws Exception {
Printer printer = new Printer("src/textfile.txt");
printer.printContents();
}

}

这只打印出src / textfile.txt

1 个答案:

答案 0 :(得分:1)

您的扫描仪获取文件名 - 而不是文件。

public Printer(String fileName) {
    this.file = new File(fileName);
    this.reader = new Scanner(file); //note the change
}

这可以帮助您获取内容。