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

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();
        //释放资源
    }





}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值