先看效果图:
未修改之前:
把张三改为李四:
修改之后:
思绪:
以前小编的想法是获取第几行第几列精确去修改excel里的内容,但这前提是要获取excel,在获取sheet页,读取行...读取列...。代码难度可想而知!
现在小编在工作中摸索出来一个更简单的方法,:
1、读取文件内容
2、替换文件内容
3、写入文件内容
只需要这三步就可以完成我所达到的需求
代码如下:
String path = "D:\\test";
List<File> files = FileUtil.loopFiles(path);//获取文件夹下的所有内容
for (File file : files) {
//1、isRetainExt为true时,保留原扩展名:
// FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
//2、isRetainExt为false时,不保留原扩展名,需要在newName中
// FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
FileUtil.rename(file, "aa", true, false);//修改文件名
String content = FileUtil.readString(file, "GBK");//读取文件内容
// String content = FileUtil.readUtf8String(file);//读取文件内容 utf-8编码
System.out.println(content);
content = content.replaceAll("张三", "李四");//替换文件内容
FileUtil.writeString(content, file, "GBK");//将替换后的内容写入文件 utf-8编码
// FileUtil.writeUtf8String(content, file);//将替换后的内容写入文件 utf-8编码
}
里面还附带修改文件名哦
依赖如下:
<!-- hutool工具类-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
当然也有不需要依赖,自带的工具类,代码如下:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class JavaFileContentReplacer {
public static void main(String[] args) throws IOException {
String filePath = "your_file_path";//替换文件路径
String find = "content_to_find";//需要查找的内容
String replace = "content_to_replace";//需要替换的内容
File file = new File(filePath);
String content = FileUtils.readFileToString(file, "UTF-8");//读取文件内容
content = content.replaceAll(find, replace);//替换文件内容
FileUtils.writeStringToFile(file, content, "UTF-8");//将替换后的内容写入文件
}
}