問題想實(shí)現(xiàn)把txt文件里面所有的0001,0002,`9998,9999全部替換成第"x"章
具體代碼
try {
int count = 0;
File f = new File("/storage/sdcard0/Download/rrt.txt");
File ff = new File("/storage/sdcard0/Download/rrt2.txt");
InputStream input = new FileInputStream(f);
BufferedReader bufReader = new BufferedReader(new InputStreamReader(input));
StringBuffer strBuf = new StringBuffer();
String tmp;
for (tmp = null; (tmp = bufReader.readLine()) != null; tmp = null) {
// 行數(shù)
while(tmp != null) {
count++;
tmp = bufReader.readLine();
}
// 替換全部
// tmp = tmp.replaceAll("\\*", "#");
// 替換第一個相匹配的項(xiàng)
// tmp = tmp.replaceFirst("===", "\\* ");
int a;
for (a = 0; a <= count; a++) {
String bb = Integer.toString(a);
tmp = tmp.replaceAll(bb, "第" + bb + "章");
System.out.println(a);
}
strBuf.append(tmp);
strBuf.append(System.getProperty("line.separator"));
}
bufReader.close();
PrintWriter printWriter = new PrintWriter(ff);
printWriter.write(strBuf.toString().toCharArray());
printWriter.flush();
printWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
在for 替換中報java.lang.NullPointerException
報錯信息
at Main.main(Main.java:43)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.aide.ui.build.java.RunJavaActivity$1.run(SourceFile:108)
at java.lang.Thread.run(Thread.java:841)
這是什么原因?
1 回答

神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個贊
這部分wihile代碼結(jié)束的時候,tmp為null,所以下面的for循環(huán)自然就報空指針異常了。
// 行數(shù)
// 最后循環(huán)結(jié)束的時候 tmp == null
while(tmp != null) {
count++;
tmp = bufReader.readLine();
}
添加回答
舉報
0/150
提交
取消