我正在使用 Tomcat 7 服务器在 Mac OS 上开发 Java EE 应用程序。我的项目结构是这样的——下面是我用来读取 JSON 文件的函数 -20180507.jsonprivate void getCurrencyJSON(){ JSONParser jsonParser = new JSONParser(); try { System.out.println(new File(".").getAbsoluteFile()); FileReader reader = new FileReader("/data/20180507.json"); //Read JSON file Object obj = jsonParser.parse(reader); JSONArray currencyList = (JSONArray) obj; System.out.println(currencyList); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } catch (org.json.simple.parser.ParseException e) { e.printStackTrace(); } }这会导致java.io.FileNotFoundException: /resources/20180507.json (No such file or directory)异常。此外,System.out.println(new File(".").getAbsoluteFile())结果/private/var/folders/0z/88rzgp7s4h3d18zzp4btcr2h3x133x/T/AppTranslocation/89F63404-971F-4AB6-9727-B1BD6E9F4A8D/d/eclipse/Eclipse.app/Contents/MacOS/.我如何阅读这个文件?另外,是否有资源可以让我了解更多关于文件路径在 Java 中的工作原理?提前致谢
2 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
您应该将数据存储到资源文件夹中。喜欢:
src |__main |__java | |__.... | |__resources |__data |__20180507.json
保存后:您可以尝试使用以下代码从资源文件夹加载它:
JSONParser parser = new JSONParser(this.getClass().getResourceAsStream("data/20180507.json"));
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
记得使用:
FileReader reader = new FileReader("data/20180507.json");
而不是“/data/20180507.json” ,因为这是根 (/)目录中“数据”文件夹的路径。
也请尝试将您的“数据”目录放在“资源”文件夹中。使用 Eclipse 构建应用程序时,资源文件夹内容在编译后与类相邻放置。
其中任何一个都可以解决您的问题。
添加回答
举报
0/150
提交
取消