Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1516|回复: 3

文本批量替换小程序 java实例

  [复制链接]

该用户从未签到

发表于 2011-9-19 15:55:02 | 显示全部楼层 |阅读模式
经常有些文件中的一些内容需要批量替换,手动的用编辑器替换,只能针对单个文件,涉及多文件的时候,很费时间。

      由于有个web项目的字符集编码原本使用gb2312,现在想改为utf-8编码,项目下有很多的HTML,手动去修改相当麻烦,比较懒,于是就写了如下的java程序对html文件中的charset=gb2312进行替换,替换为charset=utf-8。(注:Dreamweaver 可以批量替换)

代码如下:

    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.File;  
    import java.io.FileFilter;  
    import java.io.FileInputStream;  
    import java.io.FileOutputStream;  
    import java.io.IOException;  
    import java.io.InputStreamReader;  
    import java.io.OutputStreamWriter;  
   import java.io.PrintWriter;  
   import java.io.UnsupportedEncodingException;  
     
   public class ContextReplace {  
     
       private static String srcStr = "charset=gb2312";  
       private static String desStr = "charset=utf-8";  
       private static String srcDir = "f:\\test";  
     
       private static FileFilter filter = new FileFilter() {  
           public boolean accept(File pathname) {  
               // 只处理:目录 或是 .html文件  
               if (pathname.isDirectory()  
                       || (pathname.isFile() && pathname.getName().endsWith(  
                               ".html"))) {  
                   return true;  
               } else {  
                   return false;  
               }  
           }  
       };  
     
       public static void readDir(File file) {  
           // 以过滤器作为参数  
           File[] files = file.listFiles(filter);  
           for (File subFile : files) {  
               // 处理目录  
               if (subFile.isDirectory()) {  
                   readDir(subFile);  
               }  
               // 处理文件  
              else {  
                  System.err.println(" 源文件:\t" + subFile.getAbsolutePath());  
                  System.err.println("---------------------------");  
                   try {  
                      replace(subFile.getAbsolutePath(), srcStr, desStr);  
                  } catch (UnsupportedEncodingException e) {  
                       e.printStackTrace();  
                   } catch (IOException e) {  
                       e.printStackTrace();  
                   }  
               }  
           }  
       }  
     
       public static void replace(String infilename, String from, String to)  
               throws IOException, UnsupportedEncodingException {  
           File infile = new File(infilename);  
           BufferedReader in = new BufferedReader(new InputStreamReader(  
                   new FileInputStream(infile), "utf-8"));  
           File outfile = new File(infile + ".tmp");  
           PrintWriter out = new PrintWriter(new BufferedWriter(  
                   new OutputStreamWriter(new FileOutputStream(outfile), "utf-8")));  
           String reading;  
           while ((reading = in.readLine()) != null) {  
               out.println(reading.replaceAll(from, to));  
           }  
           out.close();  
           in.close();  
           infile.delete();  
           outfile.renameTo(infile);  
       }  
     
       public static void main(String[] args) {  
           File srcFile = new File(srcDir);  
           readDir(srcFile);  
           srcFile = null;  
       }  
     
   }  
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2011-11-4 21:25:54 | 显示全部楼层
    谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-6-24 11:51:52 | 显示全部楼层
    帮你顶,人还是厚道点好













    第五代QQ机器人QQ群机器人论坛QQ机器人智能客服机器人QQplus机器人QQ群互联机器人..联系QQ4000017854 QQ群296240661
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-8-16 20:06:51 | 显示全部楼层
    谷谷交易平台都有卖的












    交易平台
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-3-28 17:51 , Processed in 0.381236 second(s), 47 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表