⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 replacefilebyregex.java

📁 替换jsp中的中文为sturts中的bundle
💻 JAVA
字号:
package com.pengjj.test;

import java.io.File;
import java.io.FileOutputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.pengjj.util.FileUtil;

/**
 * <p>Title:  </p>
 * <p>Description: 替换文件中的部分内容</p>
 * <p>Copyright: Copyright (c)2005</p>
 * <p>Company: digitalchina</p>
 * @author: pengjja 2005-12-20
 * @version: 1.0
 */
public class ReplaceFileByRegex {
    /**
     * 文件夹下的文件名称
     */
    static String fileName;
    //将改变的文件保存到原文件中
    static FileOutputStream fos;

    public static void main(String[] args) {
        /**
         * 根据需要修改以下初始值
         */
        String fileType = "Root"; //文件类型
        //除去格式:<!--pengjj-->
        String reg = ":pserver:pengjj1@10.1.149.116:/A1C103-110"; //正则表达式
        String replace = ":pserver:pengjj1@scmserver:/A1C103-110"; //用来替换匹配结果的字符串
        fileName = "D:/a1c103-110"; //文件夹或文件名称

        File file = new File(fileName);
        replaceStr(file, fileType, reg, replace);
    }
	/**
	 * 循环得到文件夹下的所有文件,按规则进行匹配
	 * @param file File 文件夹路径下的所有文件
	 * @param fileType 文件类型 后缀名
	 * @param reg 正则表达式
	 * @param replace 用来替换匹配结果的字符串
	 */
	public static void replaceStr(File file, String fileType, String reg,
            String replace) {
        if (file.exists()) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (int i = 0; i < files.length; i++) {
                    replaceStr(files[i], fileType, reg, replace);
                }
            } else if (file.isFile() && FileUtil.validate(file, fileType)) {
                try {
                    fileName = file.getPath();
                    replaceContent(fileName, reg, replace); //进行转化
                } catch (Exception e) {
                    System.out .println(" File have some error:"
                                    + file.getPath());
                }
            }
        }
    }

	

	/**
	 * 替换文件目录下所有文件的部分字符串
	 * @param sFileName 文件名称
	 * @param sRegex 正则表达式
	 * @param replace 替换字符串
	 */
	public static void replaceContent(String sFileName, String sRegex,
            String replace) {
        /* 读取文件的全部字符串内容 */
        String strFile = FileUtil.getFileContent(sFileName); //文件内容
        String result = ""; //替换后的结果
        int begin = 0; //开始位置
        int end = 0; //结束位置
        String match = ""; //匹配的字符串

        Pattern p = Pattern.compile(sRegex);
        Matcher m = p.matcher(strFile);
        int count = 1;
        while (m.find()) {
            count++;
        }
        System.out.println(strFile);
        for (int i = 0; i <= count; i++) {
            if (m.find()) {
                match = m.group();
                strFile = m.replaceFirst(replace);
                System.out.println(i);
                System.out.println(strFile);
                m = p.matcher(strFile);
            }
        }
        //result = m.replaceFirst(replace);
        //将替换完成后的字符串写入文件
        FileUtil.writeFile(sFileName, strFile);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -