我正在使用 Tomcat 7 服務(wù)器在 Mac OS 上開發(fā) Java EE 應(yīng)用程序。我的項目結(jié)構(gòu)是這樣的——下面是我用來讀取 JSON 文件的函數(shù) -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(); } }這會導(dǎo)致java.io.FileNotFoundException: /resources/20180507.json (No such file or directory)異常。此外,System.out.println(new File(".").getAbsoluteFile())結(jié)果/private/var/folders/0z/88rzgp7s4h3d18zzp4btcr2h3x133x/T/AppTranslocation/89F63404-971F-4AB6-9727-B1BD6E9F4A8D/d/eclipse/Eclipse.app/Contents/MacOS/.我如何閱讀這個文件?另外,是否有資源可以讓我了解更多關(guān)于文件路徑在 Java 中的工作原理?提前致謝
2 回答

白豬掌柜的
TA貢獻1893條經(jīng)驗 獲得超10個贊
您應(yīng)該將數(shù)據(jù)存儲到資源文件夾中。喜歡:
src |__main |__java | |__.... | |__resources |__data |__20180507.json
保存后:您可以嘗試使用以下代碼從資源文件夾加載它:
JSONParser parser = new JSONParser(this.getClass().getResourceAsStream("data/20180507.json"));

翻過高山走不出你
TA貢獻1875條經(jīng)驗 獲得超3個贊
記得使用:
FileReader reader = new FileReader("data/20180507.json");
而不是“/data/20180507.json” ,因為這是根 (/)目錄中“數(shù)據(jù)”文件夾的路徑。
也請嘗試將您的“數(shù)據(jù)”目錄放在“資源”文件夾中。使用 Eclipse 構(gòu)建應(yīng)用程序時,資源文件夾內(nèi)容在編譯后與類相鄰放置。
其中任何一個都可以解決您的問題。
添加回答
舉報
0/150
提交
取消