我正在用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));
答案 0 :(得分:1)
尝试
BufferedReader br = new BufferedReader(new FileReader(fileName));
实际上,您正在指定您的阅读器InputStreamReader
以便从系统中读取System.in
,尽管您正在尝试读取文件。所以你必须使用FileReader
。见How to read file in Java
还要感谢@ user1009560,你可以使用
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
答案 1 :(得分:1)
Scanner scanner = new Scanner(System.in);
String fileName = scanner.next();
scanner.nextLine();
FileReader file = new FileReader(fileName);
BufferedReader br = new BufferedReader(FileReader);
答案 2 :(得分:0)
您正在将System.ream创建一个InputStreamReader对象作为inputStream属性。您需要为FileStream指定一个FileInputStream。