0
我有以下方法:NullPointerException異常時referenceing屬性文件
public String readJson(){
String everything = "";
try(BufferedReader br = new BufferedReader(new FileReader("https://stackoverflow.com/users/mypc/test/etc/one.json"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
everything = sb.toString();
logger.debug("Everything: " + everything);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logger.debug("line: " + everything);
return everything;
}
這工作得很好,因爲它是。我的問題是我不想硬編碼文件路徑/users/mypc/test/etc/one.json。
test.properties:
file1=/users/mypc/test/etc/one.json
PropertiesHelper.java:
public String GET_FILE_ONE = "file1";
private static String one;
public String getJsonFile(){
one = config.getProperty(this.GET_FILE_ONE);
return one;
}
JsonReader.java:
private static PropertiesHelper helper;
final String GET_FILE_ONE = helper.getJsonFile();
public String readJson(){
String everything = "";
try(BufferedReader br = new BufferedReader(new FileReader(GET_FILE_ONE))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
everything = sb.toString();
logger.debug("Everything: " + everything);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logger.debug("line: " + everything);
return everything;
}
我試圖通過以下操作將其添加到屬性文件我在過去做過類似的事情,但是這次我得到了一個NullPointerException。我一直盯着這個片刻,看不出有什麼不對。我在屬性文件中設置文件路徑的方式有什麼問題嗎?還是有其他我錯過的東西?
添加異常消息,以便我們更好地瞭解發生了什麼。如果文件未找到,則應拋出FileNotFound異常,而不是NPE。所以我認爲你的問題在別處。 – DCON
我發現了這個問題。你的'PropertiesHelper helper'永遠不會被創建。加入'PropertiesHelper helper = new PropertiesHelper();' – DCON
此外,誰低估了這個問題;這是不合理的。即使解決方案很簡單,問題的格式也很好。 – DCON