1

我正在用 Java 编写一个程序,它扫描文件,计算行数、字符、回文、单词。我的问题是当我询问文件名时,我使用 BufferedReader 和 InputStreamReader 扫描用户提供的文件,并将结果打印到另一个文件中,我的程序编译,当我输入文件名时没有任何反应,程序没有没有完成,仍然卡住,这里是 BufferedReader 的代码,如果需要整个代码,我会发布它

System.out.println("Enter the name of the file you would like to scan: ");
                        String fileName = scan.nextLine();

                        File file = new File(fileName);



          BufferedReader br = new BufferedReader(newInputStreamReader(System.in));
4

3 回答 3

1

尝试

BufferedReader br = new BufferedReader(new FileReader(fileName));

实际上,您正在指定您的阅读器InputStreamReader从 System 读取,就System.in好像您正在尝试读取文件一样。所以你必须使用FileReader. 请参阅如何在 Java 中读取文件

还要感谢@user1009560,您可以使用

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
于 2013-12-01T20:36:06.790 回答
1
    Scanner scanner = new Scanner(System.in);
    String fileName = scanner.next();
    scanner.nextLine();

    FileReader file = new FileReader(fileName);

    BufferedReader br = new BufferedReader(FileReader);
于 2013-12-01T20:42:01.033 回答
0

您正在创建一个 InputStreamReader 对象作为 System.in 作为 inputStream 属性。您需要指定一个 FileInputStream 作为 InputStream。

于 2013-12-01T20:35:25.820 回答