zoukankan      html  css  js  c++  java
  • 批量替换指定目录下所有文件中的指定字符串

    package com.general;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.util.ArrayList;
    import java.util.List;
    
    /*
    * @author chenyanwei
    * @date 22 Jan 2019 21:56:07
    * @version 1.0
    */
    /**
     * 批量修改目录下的文件的指定字符串
     * 
     * @author 18430
     *
     */
    
    public class ModifyFile {
    	public void modifyFile(String directory, String oldStr, String newStr) {
    		RandomAccessFile raf = null;
    		ArrayList<File> list = (ArrayList<File>) getFiles(directory);
    		for (File file : list) {
    			try {
    				raf = new RandomAccessFile(file.getPath(), "rw");
    				String line = null;
    				long lastPoint = 0; // 记住上一次的偏移量
    				while ((line = raf.readLine()) != null) {
    					final long ponit = raf.getFilePointer();
    					if (line.contains(oldStr)) {
    						String str = line.replace(oldStr, newStr);
    						raf.seek(lastPoint);
    						raf.writeBytes(str);
    					}
    					lastPoint = ponit;
    				}
    			} catch (Exception e) {
    				e.printStackTrace();
    			} finally {
    				try {
    					raf.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    
    	}
    
    	public List<File> getFiles(String directory) {
    		ArrayList<File> list = new ArrayList<File>();
    		File file = new File(directory);
    		if (file.exists()) {
    			File[] file1 = file.listFiles();
    			for (File file2 : file1) {
    				list.add(file2);
    			}
    		}
    		return list;
    
    	}
    
    }
    
  • 相关阅读:
    IE9的兼容性
    element 弹框关闭报错
    时间选择器moment格式化存在时差问题
    项目常见bug
    函数封装——函数封装——函数封装
    element-ui 日期选择器范围时间限制
    vue + element 创建教程
    Html基础学习
    HTML、PHP、CSS、JS之间的关系
    vs连接MySQL
  • 原文地址:https://www.cnblogs.com/yanweichen/p/10306461.html
Copyright © 2011-2022 走看看