IO流删除&复制&改后缀名

mac2024-04-14  37

1,删除文件夹

public static void main(String[] args) { //删除一个文件夹 File file = new File("E:\\jieyaaaa"); deleteFolder(file);//创建方法 //file.delete(); System.out.println("文件夹删除成功"); } private static void deleteFolder(File file) { //获取此目录下的所有文件和文件夹 File[] files = file.listFiles(); for (File f : files) { if(f.isFile()){//如果是文件则删除 f.delete(); }else{ //是文件夹,那就递归 deleteFolder(f);//重复方法 } } file.delete(); }

2,修改文件名

public static void main(String[] args) { //修改文件后缀名 File file = new File("E:\\jieya");//指定文件夹位置 updateFile2(file);//创建方法 } private static void updateFile2(File file) { //如果传过来的是文件夹 if (file.isDirectory()) { //遍历文件夹 File[] files = file.listFiles(); for (File f : files) { //如果是文件就改名 if (f.isFile() && f.getName().endsWith(".jpg")) {//j以.jpg结尾的文件 String absolutePath = f.getAbsolutePath();//返回绝对路径名字符串 String substring = absolutePath.substring(0, absolutePath.lastIndexOf("."));//截取路径从0到最后一次出现"."的地方 File newFile = new File(substring + ".png");//在截取后的名字后边加上".png" f.renameTo(newFile);//该名字 } else { //是文件夹就递归 updateFile2(f);//再次调用该方法 } } } else { //如果是文件 // System.out.println(file); } }

3,复制文件夹

import java.io.*; public class CopyFileDemo { public static void main(String[] args) throws Exception { CopyDir("D:\\jieya","E:\\test"); //创建复制方法 System.out.println("复制完成"); } private static void CopyDir(String src, String des) throws IOException { //初始化输入文件 File file1=new File(src); //将文件放入数组 File[] fs=file1.listFiles(); //初始化输出文件 File file2=new File(des); //判断有没有输出的文件,如果没有则建立 if(!file2.exists()){ file2.mkdirs(); } //遍历文件夹中的内容 for (File f : fs) { //如果是文件,则调用复制方法 if (f.isFile()){ fileCopy(f.getPath(),des+"\\"+f.getName()); }else if(f.isDirectory()){ CopyDir(f.getPath(),des+"\\"+f.getName());//继续调用复制方法 } } } private static void fileCopy(String src, String des) throws IOException { //IO流固定格式 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(des)); //记录获取长度 int len = -1; //缓冲区 byte[] bytes = new byte[1024*8]; while ((len=bis.read(bytes))!=-1){ bos.write(bytes,0,len); } bis.close(); bos.close(); //释放资源 } }
最新回复(0)