Я потратил бесчисленные часы на эту часть моего кода, которая дает мне исключение Null Pointer. Я не понимаю, почему это происходит или как остановить его. Я пробовал каждый метод, ранее опубликованный в stackoverflow. Вот функция, которая читает файл данных и помещает каждую строку в хэш-карту.Ошибка NullPointerException в Hashmap
public ArrayList<HashMap<String, String>> readDataFromFile(){
this.openFileForReading();
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
try{
String line;
while ((line = this.reader.readLine()) != null){
while (!(line.equals(""))){
if (line.equals("[type = book]")){
HashMap<String, String> data= new HashMap<>();
line = this.reader.readLine();
while (!(line.equals(""))){<----this is where the null exception error is
String tokens[] = line.split("=");
data.put(tokens[0], tokens[1]);
System.out.println(tokens[0] + " " + tokens[1]);
line = this.reader.readLine();
}
list.add(data);
}
else{
break;
}
}
}
}
catch (IOException exception) {
list = null;
System.err.println("(FileIO): " + exception);
}
// Close the file when we have finished reading or if an error occurs
finally {
try {
this.reader.close();
} catch (IOException exception) {
System.err.println("(FileIO): " + exception);
}
}
return list;
}
Я затем запустить его в основном с этим:
public static void main (String args[]) {
FileIO fileIO = new FileIO(DATA_FILE_PATH);
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
list = fileIO.readDataFromFile();
}
run:
callnumber QA76.73.J38S265 авторы Вальтер Савича, Kenrich Mock название Absolute Java издатель Addison-Wesley год 2009 номер телефона P98.C6116 название Computati нальная Лингвистика Исключение в потоке «основной» java.lang.NullPointerException организация Ассоциация по вычислительной лингвистике в librarysearch.FileIO.readDataFromFile (FileIO.java:160) год 2008 на librarysearch.FileIO.main (FileIO.java:405) Java Результат: 1 BUILD УСПЕШНОГО (общее время: 1 второе)
я написал в коде, где происходит ошибка. Почему это происходит? Я не понимаю, если кто-нибудь из saavy может понравиться, это было бы очень признательно.
Опубликовать полное исключение из трассировки стека. –
Опубликовать полное дерево исключений –
Первое, что нужно сделать: прочитать трассировку стека исключений (или опубликовать ее, если вы не можете ее понять). Сообщения об ошибках предназначены для чтения. Они рассказывают вам, что и где проблема. Не читая их, вы стреляете в ногу, и то, что можно решить за 10 секунд, нужно решить. –