【求助】如何替换文件夹内所有指定文件

zepengzhou 2019-08-19 02:05:58
打个比方a文件夹(文件名固定,路径不固定)内有1.2.3.4.5这五个文件夹(文件名随机),这五个文件夹内又同时拥有b文件(文件名固定)。我想替换掉这五个文件
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
许洛以合 2019-08-19
  • 打赏
  • 举报
回复
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Demo01 { public static void main(String[] args) { //需要替换文件的文件夹路径 File a = new File("文件,递归/src/a"); try {//new File是要替换成的文件的路径 replaceFile(a,new File("文件,递归/src/1.txt")); } catch (IOException e) { e.printStackTrace(); } } public static void replaceFile(File file, File rfile) throws IOException { //获取文件夹内文件对象 File[] files = file.listFiles(); //遍历文件夹对象数组 for (File dir : files) { //如果是文件夹,递归调用方法 if (dir.isDirectory()) { replaceFile(dir,rfile); } else { //是最里面的文件,调用替换方法 copy(dir,rfile); } } } public static void copy(File srcFile, File destFile) throws IOException { FileInputStream fis = new FileInputStream(destFile); //定义替换文件的对象,先获取被替换文件的父路径,再把文件名称设置成替换的文件名 File newfile = new File(srcFile.getParent(),destFile.getName()); FileOutputStream fos = new FileOutputStream(newfile); //删除原文件 srcFile.delete(); //写文件 byte[] bys = new byte[1024]; int len; while ((len = fis.read(bys)) != -1) { fos.write(bys, 0, len); } fos.close(); fis.close(); } } 写了一个可以实现你的需求的代码,
  • 打赏
  • 举报
回复
使用dir.listFiles()读取到所有文件,因为要替换的文件文件名固定,可以得到替换的文件,然后新建文件进行替换。读取文件代码参考:https://blog.csdn.net/mr_zql/article/details/98671993

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧