我有以下代码:
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter: ");
String m = inFromUser.readLine();
BufferedReader br = new BufferedReader(new FileReader(m));
String text;
while((text = br.readLine()) != null){
System.out.println(text);
}
br.close();
当从用户读取字符串时,永远无法找到该文件。我不知道字符串传递时发生了什么,但它变得不可靠。虽然文件非常多。
我已经运行了测试,当我用newFileReader(“Lab3 / test”)替换newFileReader(m)时,找到了文件,但是当我在系统中输入“Lab3 / test”时(通过String m = inFromUser) .readLine();)读取它,它被读入并打印为“Lab3 / test”但文件读取器在字符串传递到文件阅读器(通过m)时从不找到文件,当字符串完全相同时。
我用谷歌搜索了一下,但试图解释这是一种痛苦。
先谢谢你,Sam
答案 0 :(得分:3)
您需要输入不带引号的文件名。如果您使用引号输入,则文件名也必须包含引号。
如果使用Lab3/test
等文件名,则Java将在当前工作目录中搜索该文件。当前工作目录通常是应用程序启动的位置。如果输入完整的绝对文件名,例如C:\Users\Smithers\Dropbox\Software Engineering Code\Eclipse\Networking\Lab3\test
。
使用反斜杠或正斜杠无关紧要。