1

我有以下代码:

    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)时,文件读取器永远找不到文件,当字符串完全相同时。

我用谷歌搜索了一下,但试图解释这很痛苦。

提前谢谢你,山姆

4

1 回答 1

3

您需要输入不带引号的文件名。如果使用引号输入,则文件名也必须包含引号。

如果您使用诸如 的文件名Lab3/test,那么 Java 将在当前工作目录中搜索该文件。当前工作目录通常是启动应用程序的位置。如果您输入完整的绝对文件名(例如C:\Users\Smithers\Dropbox\Software Engineering Code\Eclipse\Networking\Lab3\test.

使用反斜杠或正斜杠都没关系。

于 2012-05-06T15:49:01.657 回答