FileReader中找不到文件异常

时间:2013-09-24 12:03:58

标签: java filenotfoundexception

抱歉这个愚蠢的问题。但我真的无法找到我做错的地方。请帮忙。我试图使用JSON解析文件。文件也存在于系统中。但它显示filenotfound异常。而且真的令人沮丧。

我的代码片段如下:

        System.out.println("Please provide JSON file path : ");
        filePathJson = "\"D:\\files\\test.xlsx\"";
                //in.nextLine();

        System.out.println("Please provide Excel file path : ");
        filePathExcel = in.nextLine();

        Object obj = parser.parse(new FileReader(filePathJson));
        System.out.println("hii");

        JSONArray array = new JSONArray();

我得到的错误:

Please provide JSON file path : 
Please provide Excel file path : 
"D:\\files\\test1.xlsx"
java.io.FileNotFoundException: "D:\files\test.xlsx" (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:137)
    at java.io.FileInputStream.<init>(FileInputStream.java:96)
    at java.io.FileReader.<init>(FileReader.java:58)
    at JavaJsonSplitter.main(JavaJsonSplitter.java:50)

有人可以指出我在哪里做错了。

请忽略一个无用的sysout。

5 个答案:

答案 0 :(得分:4)

你实际上是在文件名中加上引号。删除它们,你只需要在命令行周围的实际引号等。当您为FileReader(或任何其他需要文件名而不是命令行的方法)提供文件名时,您只需提供文件名(即使其中包含空格)。

如,

filePathJson = "\"D:\\files\\test.xlsx\"";

变为

filePathJson = "D:\\files\\test.xlsx";

答案 1 :(得分:2)

删除文件路径周围的额外双引号。这根本不是必需的。

filePathJson = "D:\\files\\test.xlsx";

答案 2 :(得分:2)

filePathJson = "\"D:\\files\\test.xlsx\"";

应该像

filePathJson = "D:\\files\\test.xlsx";

答案 3 :(得分:0)

@ user2696466 -

请参阅修改代码,看看它是否有效

System.out.println("Please provide JSON file path : ");
    **filePathJson = "D:/files/test.xlsx/"**
            //in.nextLine();

    System.out.println("Please provide Excel file path : ");
    filePathExcel = in.nextLine();

    Object obj = parser.parse(new FileReader(filePathJson));
    System.out.println("hii");

    JSONArray array = new JSONArray();

答案 4 :(得分:0)

线索在这里

java.io.FileNotFoundException: "D:\files\test.xlsx" (The filename, directory name, or volume label syntax is incorrect)

试试这个

filePathJson = "D:\\files\\test.xlsx";