码迷,mamicode.com
首页 > 其他好文 > 详细

IO小练习--使用io流剪切文件夹

时间:2020-12-24 12:08:18      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:完成后   tor   read   get   结束   tput   复制   put   简单   

前言

前面基本已经将io的大部分内容说完了,本篇文章呢,主要是为了练习前面的前面的知识点,加深对io的里的理解

题目

题目很简单,自己创建一个文件夹,里面有图片、文件、文件夹等,进行剪切到另一个地方

思路

我来聊一聊我的解题思路,如果有更好的思路,请私信或者留言,定当参考:

  1. 首先使用递归的思路遍历文件夹里的所有东西,并判断是文件还是文件夹
  2. 使用所有文件的世界都是字节的特性,使用字节输入流进行读取
  3. 读取的同时使用字节输出流进行复制文本
  4. 复制完成后直接删除文件

代码实现

public static void main(String[] args) throws Exception{
        File srcfile=new File("D:\\codes\\zuoye10");
        File desfile=new File("D:\\zuoye10");

        copyDir(srcfile,desfile);

        srcfile.delete();

    }
    //复制文件夹
    public static void copyDir(File srcfile,File desfile) throws IOException {
        if(!desfile.exists()){
            desfile.mkdirs();
        }
        File[] files = srcfile.listFiles();

        for(File file:files){
            if(file.isFile()){
                copyFile(file,new File(desfile,file.getName()));
            }else if(file.isDirectory()){
                copyDir(file,new File(desfile,file.getName()));
                file.delete();
            }
        }
    }
    //文件的复制
    public static void copyFile(File srcfile,File desfile) throws IOException{
        //读写文件
        FileInputStream fis=new FileInputStream(srcfile);
        FileOutputStream fos=new FileOutputStream(desfile);
        BufferedInputStream bis = new BufferedInputStream(fis);//测试缓冲
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        int len;
        byte[] bys=new byte[10];
        while((len=bis.read(bys))!=-1){
            bos.write(bys, 0, len);
            bos.flush();
        }
        bos.close();
        bis.close();
        fos.close();
        fis.close();
        srcfile.delete();
    }

结束

以上是对io流的一个小练习,如果看不懂的话,建议去重温下io字节流

IO小练习--使用io流剪切文件夹

标签:完成后   tor   read   get   结束   tput   复制   put   简单   

原文地址:https://blog.51cto.com/14954398/2567691

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!