Java File文件流读取文件夹内的文件并替换文件内容
Java File文件流读取文件夹内的文件并替换文件内容一、前言二、代码三、运行结果一、前言批量读取文件夹内的文件,并替换各个文件的内容二、代码新建一个普通 Java 项目就可以,创建文件 ReadFile.javaimport java.io.*;public class ReadFile {public void replaceFileStr() {//遍历文件夹内所有内容,不包换文件夹里的文
·
一、前言
批量读取文件夹内的文件,并替换各个文件的内容
二、代码
新建一个普通 Java 项目就可以,创建文件 ReadFile.java
import java.io.*;
public class ReadFile {
public static void main(String[] args) {
//遍历文件夹内所有内容,不包换文件夹里的文件夹里的内容
String path = "txt";
//获取其file对象
File fileFolder = new File(path);
//遍历path下的文件和目录,放在File数组中
File[] fileArray = fileFolder.listFiles();
//判断文件夹内是否有文件
if (fileArray != null && fileArray.length > 0) {
//遍历File[]数组
for (File file : fileArray) {
//判断是文件还是文件夹,文件夹的话跳过
if (file.isDirectory()) {
continue;
}
//要替换的旧内容
String oldStr = "1010";
//替换成的新内容
String newtStr = "哈哈哈";
// 创建文件输入输出流,BufferedReader比FileReader性能更高
try (FileReader fileReader = new FileReader(file)) {
StringBuilder sb = new StringBuilder();
// 读取的字符数,如果已到达流的末尾,则返回 -1
while (true) {
int n = fileReader.read();
if (n == -1) {
break;
}
sb.append((char) n);
}
// 生成字符串,并替换搜索文本
String str = sb.toString().replace(oldStr, newtStr);
// 创建输出流,注意,输入流和输出流不能同时创建,会导致写入文件为空
try (FileWriter fileWriter = new FileWriter(file)) {
// 把替换完成的字符串写入文件内
fileWriter.write(str.toCharArray());
//若非目录(即文件),则打印,提示替换完成
System.out.println(file.getPath() + "已完成替换。");
}
} catch (IOException e) {
System.out.println("IO异常");
}
}
} else {
System.out.println("文件夹为空!");
}
}
}
三、运行结果
我新建了一个 test.txt ,里面写了 1010嘻嘻嘻
,你们可以多建几个,可以批量读取替换的
运行项目,发现 1010
被替换为了 哈哈哈
更多推荐
已为社区贡献21条内容
所有评论(0)