码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-11 18:38:55      阅读:125      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!