为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个java txt文本替换NullPointerException

请教一个java txt文本替换NullPointerException

喵喵时光机 2019-03-01 10:57:08
问题想实现把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) { // 行数 while(tmp != null) { count++; tmp = bufReader.readLine(); } // 替换全部 // tmp = tmp.replaceAll("\\*", "#"); // 替换第一个相匹配的项 // 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贡献1963条经验 获得超6个赞

这部分wihile代码结束的时候,tmp为null,所以下面的for循环自然就报空指针异常了。

                // 行数
                // 最后循环结束的时候 tmp == null 
                while(tmp != null) {
                    count++;
                    tmp = bufReader.readLine();
                }
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 470 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号