Datei Ich habe die unten Methode:Nullpointer wenn referenceing Eigenschaften
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;
}
Dies funktioniert gut, wie es ist. Mein Problem ist, dass ich den Dateipfad /users/mypc/test/etc/one.json nicht hart codieren möchte. Ich habe versucht, es zu einer Properties-Datei hinzufügen, indem Sie folgendermaßen vorgehen:
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;
}
Ich habe in der Vergangenheit ähnliche Dinge gemacht, aber diesmal bekomme ich eine NullPointerException. Ich habe das schon eine ganze Weile beobachtet und kann nicht sehen, was los ist. Ist etwas nicht in Ordnung mit der Art, wie ich meinen Dateipfad in der Eigenschaftendatei festgelegt habe oder gibt es etwas anderes, das ich übersehen habe?
Fügen Sie die Ausnahmebedingung hinzu, damit wir eine bessere Vorstellung davon haben, was vor sich geht. Eine FileNotFound-Ausnahme sollte ausgelöst werden, wenn die Datei nicht gefunden wird, keine NPE. Also ich denke dein Problem ist woanders. – DCON
Ich habe das Problem gefunden. Dein 'PropertiesHelper-Helfer' wird nie erstellt. Add in 'PropertiesHelper helper = new PropertiesHelper();' – DCON
Auch wer die Frage abgelehnt hat; das ist nicht gerechtfertigt. Die Frage ist gut formatiert, auch wenn die Lösung einfach ist. – DCON