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