我正在尝试运行一个从JSON文件中读取一些值的java类。但是,当我运行它时,我收到错误:
java.io.FileNotFoundException: \file001.json (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at jsonPractice.main(jsonPractice.java:21)
我使用的代码是:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class jsonPractice {
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
JSONParser parser = new JSONParser();
try
{
Object obj = parser.parse(new FileReader("file001.json"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("name");
System.out.println(name);
long age = (Long) jsonObject.get("age");
System.out.println(age);
JSONArray msg = (JSONArray) jsonObject.get("messages");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext())
{
System.out.println(iterator.next());
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (ParseException e) {
e.printStackTrace();
}
}
}
我确保将json jar添加到构建路径,file001.json位于项目工作区的文件夹内。
由于
答案 0 :(得分:0)
这里最简单的方法是使用文件的完整路径:
Object obj = parser.parse(new FileReader("C:/the/full/path/file001.json"));
答案 1 :(得分:0)
您可以使用 -
获取当前目录String currentDir = new File(".").getAbsolutePath();
或
System.getProperty("user.dir");
让我们考虑您的文件位于/home/user/test/file/file001.json
,并且您使用当前目录命令获得/home/user/test/
。然后,将其余file/file001.json
添加为 -
Object obj = parser.parse(new FileReader(currentDir + "file/file001.json"));