我要炸了
FileWriter fw1 = new FileWriter(phoneBook);
BufferedWriter bw1 = new BufferedWriter(fw1);
int k=0;
while(k<lineNumberReader.getLineNumber()+1){
bw1.write(tip[k]);
bw1.newLine();
k++;
}
bw1.flush();
bw1.close();
fw1.close();
}
这玩意报错
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Unknown Source)
at FileSave.main(FileSave.java:179)
然而我手打不用循环(for我也用过了)
FileWriter fw1 = new FileWriter(phoneBook);
BufferedWriter bw1 = new BufferedWriter(fw1);
bw1.write(tip[0]);
bw1.newLine();
bw1.write(tip[1]);
bw1.newLine();
bw1.flush();
bw1.close();
fw1.close();
}
这TM就没事,这是什么鬼原因?
k<lineNumberReader.getLineNumber()+1
这个判断条件导致读取行越界,导致NULL
问题应该出在lineNumberReader.getLineNumber(),这个你打印一下看看是多少
while(k<lineNumberReader.getLineNumber()+1)换成 while(lineNumberReader.readLine()!=null)看看
错误提示很明显:
写入了一个空数据,应该是for循环中k取值不对,导致tip取到了空值或者越界吧
while判断条件不对,导致bw1.write(tip[k]);中的tip[k]数组越界了,为null,而write方法中传null时报错导致的