我的代码片段如下:
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。
答案 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";