Java遍历文件夹下所有文件并替换指定字符串详解编程语言
2023-06-13 09:20:41 时间
应用场景:比如有一个深层次的文件目录结构,如:javaAPI
每个文件里面都有相同的内容,而我们要统一修改为其他内容。上千个文件如果一个个修改显得太不明智。
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter;
public static void main(String[] args) { File f = new File("F:/javaAPI/java/lang/reflect"); print(f, 0); /** * 遍历文件夹 * @param f * @param len public static void print(File f, int len) { File[] file = f.listFiles(); for (int i = 0; i file.length; i++) { if (file[i].isDirectory()) { //判断是否文件夹 print(file[i], len + 1); // 为防止输出文件覆盖源文件,所以更改输出盘路径 也可自行设置其他路径 File outPath = new File(file[i].getParent().replace("F:", "E:")); File readfile = new File(file[i].getAbsolutePath()); if (!readfile.isDirectory()) { String filename = readfile.getName(); // 读到的文件名 String absolutepath = readfile.getAbsolutePath(); // 文件的绝对路径 readFile(absolutepath, filename, i, outPath); // 调用 readFile /** * 读取文件夹下的文件 * @return public static void readFile(String absolutepath, String filename, int index, File outPath) { try { BufferedReader bufReader = new BufferedReader(new InputStreamReader( new FileInputStream(absolutepath), "gb2312")); // 数据流读取文件 StringBuffer strBuffer = new StringBuffer(); String newStr = "i love you too"; String oldStr = "i love you"; for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) { if ((temp.indexOf(oldStr) != -1) (temp.indexOf(oldStr) != -1)) { // 判断当前行是否存在想要替换掉的字符 temp = temp.replace(oldStr, newStr); // 此处进行替换 strBuffer.append(temp); strBuffer.append(System.getProperty("line.separator")); // 换行符 bufReader.close(); if (outPath.exists() == false) { // 检查输出文件夹是否存在,若不存在先创建 outPath.mkdirs(); System.out.println("已成功创建输出文件夹:" + outPath); PrintWriter printWriter = new PrintWriter(outPath + "//" + filename, "gb2312"); // 替换后输出文件路径 printWriter.write(strBuffer.toString().toCharArray()); //重新写入 printWriter.flush(); printWriter.close(); System.out.println("第 " + (index + 1) + " 个文件 " + absolutepath + " 已成功输出到 " + outPath + "//" + filename); } catch (Exception e) { e.printStackTrace();
作者:blog.ytso.com
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14308.html
cjava相关文章
- Java 文件上传 MultipartFile
- java 上传文件接口_Java接口实现文件上传
- (My)Eclipse 中的 Java 项目使用 .jardesc 文件快速导出 jar 包文件
- java源程序文件扩展名_JAVA源代码的扩展名为( )
- java源程序文件的扩展名_使用Java语言编写的源程序保存时的文件扩展名是什么…
- eclipse运行java程序_如何在Eclipse中运行简单的Java程序?「建议收藏」
- java无法获取服务器上路径,JAVA获取服务器路径的步骤
- java 读取字符串文件_Java读取文件为字符串
- Java IO流之PrintWriter分析「建议收藏」
- java文件转码工具-native2ascii.exe命令简介
- java 文件上传到服务器_Java上传文件到服务器端的方法「建议收藏」
- Java数组循环_java遍历object数组
- java 异或加密_Java异或技操作给任意的文件加密原理及使用详解
- JAVA读取csv文件_java读取csv文件某一列
- 通过Java NIO 实现文件下载详解编程语言
- Java多线程实现文件快速切分详解编程语言
- Java统计目录文件下行数的总和,注释行数的总和,空行数总和详解编程语言
- Java解压上传zip或rar文件,并解压遍历文件中的html的路径详解编程语言
- 【Java】遍历目录下的所有文件详解编程语言
- 深入Linux环境下Java应用调试实践(linux调试java)
- 时间解决java使用Redis设置失效时间的方法(redisjava过期)
- Linux下快速安装Java开发环境(linux安装java)
- Java Redis一次实现无限数据加速的尝试(用java redis)
- 编程Oracle数据库中实现Java编程的突破之道(oracle使用java)
- 基于Java回顾之多线程详解