首页 > 其他 > 详细

替换一个文件内的某个字符

时间:2016-06-11 18:38:41      阅读:222      评论:0      收藏:0      [点我收藏+]

先看这种写法:

public static void main(String[] args) throws IOException {
        
        try {
            FileReader r = new FileReader("d:/ti.txt");
        StringBuilder sb = new StringBuilder();
        char[] temp = new char[1];
        int read = r.read(temp);
        while(read!=-1){
            sb.append(temp);
        }
        String strAfter = sb.toString().replace("c", "x");
        FileWriter w = new FileWriter("d:/titi.txt");
        w.write(strAfter);
        r.close();
        w.close();
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

技术分享

debug:

技术分享

read为1所以while就成了无限循环,内存溢出了

当这样修改后:

public static void main(String[] args) throws IOException {
        
        try {
            FileReader r = new FileReader("d:/ti.txt");
        StringBuilder sb = new StringBuilder();
        char[] temp = new char[1];
        //r.read(temp)放到while的里
        while((r.read(temp))!=-1){
            sb.append(temp);
        }
        String strAfter = sb.toString().replace("c", "x");
        FileWriter w = new FileWriter("d:/titi.txt");
        w.write(strAfter);
        r.close();
        w.close();
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

技术分享

技术分享

所以,要一直取一直取一直取的应该放在while里,不能放while外

替换一个文件内的某个字符

原文:http://www.cnblogs.com/lonely-buffoon/p/5575588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!