Java学习——commons-io组件的环境搭建与简单使用

Java——commons-io组件的环境搭建与简单使用

一、commons-io组件的环境搭建

commons-io组件是apache里面的一个组件,组件的也就是jar包的集合。使用来简化我们io操作的。
在这里插入图片描述
说起apache,不得不去夸一下这个组织,我们在以后的学习中很多开源的框架都来源于apache,这个组织是不盈利的,有很多大公司,比如阿里里巴巴,会将一些开源的代码交给apache发布。这些代码框架都是免费使用的…

1)下面我们来看一下使用idea搭建这个io组件:

①下载:重要的事情说三遍!!一定要记住这个网站!
在这里插入图片描述
选择commons
在这里插入图片描述
选择IO
在这里插入图片描述
点击下载
在这里插入图片描述
下载
在这里插入图片描述
②搭建:解压—>拷贝jar包到项目中去在这里插入图片描述
在这里插入图片描述
将commons-io添加到构建路径中
在这里插入图片描述
在这里插入图片描述
搭建完成之后我们就可以使用其工具类了。

二、FileUtils的简单使用

①获取文件/文件夹的大小

        //1.获取文件大小
        long l = FileUtils.sizeOf(new File("a.txt"));
        System.out.println(l);

        //2.获取文件夹大小
        long l1 = FileUtils.sizeOf(new File("E:\\IdeaProjects\\MyJavaProjects001"));
        System.out.println(l1);

②获取内层目录与文件

    public static void main(String[] args) {
        //封装文件夹
        File file = new File("E:\\IdeaProjects\\MyJavaProjects001");
        //获取其子孙集,返回的是Collection集合。
        //参数一:文件    参数二:文件过滤器     参数三:目录过滤器
        //EmptyFileFilter.NOT_EMPTY:非空文件   new SuffixFileFilter(".java"):后缀为.java的文件
        //DirectoryFileFilter.INSTANCE:全部子孙集
        Collection<File> files = FileUtils.listFiles(file, new SuffixFileFilter(".java"), DirectoryFileFilter.INSTANCE);
        //遍历集合取出其路径
        for (File f : files) {
            System.out.println(f.getAbsolutePath());
        }
    }

③读内容

    public static void main(String[] args) throws IOException {
        //两个参数:参数一:文件
        //         参数二:字符集
        String s = FileUtils.readFileToString(new File("a.txt"), "UTF-8");
        System.out.println(s);

        System.out.println("-----这是一条华丽的分割线-----");

        //读内容到字节数组
        byte[] bytes = FileUtils.readFileToByteArray(new File("a.txt"));
        System.out.println(bytes.length);

        System.out.println("-----这是一条华丽的分割线-----");

        //逐行读取
        List<String> list = FileUtils.readLines(new File("a.txt"), "UTF-8");
        for (String string : list) {
            System.out.println(string);
        }
        System.out.println("-----这是一条华丽的分割线-----");

        //迭代器读取
        LineIterator iterator = FileUtils.lineIterator(new File("a.txt"), "utf-8");
        while (iterator.hasNext()){
            System.out.println(iterator.nextLine());
        }

    }

④写内容

    public static void main(String[] args) throws IOException {
        //1.写入字符串
        //四个参数
        //          参数一:文件
        //          参数二:写入的字符串
        //          参数三:字符集
        //          参数四:是否追加写入(默认为false)
        FileUtils.write(new File("b.txt"),"我们都是祖国的花朵","UTF-8",true);
        FileUtils.write(new File("b.txt"),"祖国的未来需要我们","UTF-8",true);

        //2.写入字节数组
        //          参数一:文件
        //          参数二:写入的字节数组
        //          参数三:是否追加写入
        FileUtils.writeByteArrayToFile(new File("c.txt"),"西安邮电大学".getBytes(),true);

        //3.写入列表
        ArrayList<String> list = new ArrayList<>();
        list.add("西安");
        list.add("北京");
        list.add("上海");
        //          参数一:文件
        //          参数二:字符集
        //          参数三:要写入的列表
        //          参数四:连接符
        //          参数五:是否追加写入
        FileUtils.writeLines(new File("d.txt"),"UTF-8",list,"===",true);
    }

⑤复制文件(重要)

    public static void main(String[] args) throws IOException {
        /**
         * 一、复制文件
         */
        //1.复制文件
        FileUtils.copyFile(new File("a.txt"),new File("aaaaa.txt"));
        //2.复制文件到某个文件夹
        FileUtils.copyFileToDirectory(new File("a.txt"),new File("E:\\IdeaProjects\\MyJavaProjects001\\lib"));

        /**
         * 二、复制文件夹
         */
        //封装原文件路径和新文件路径
        File oldFile = new File("E:\\IdeaProjects\\MyJavaProjects001\\src\\IOUtils");
        File newFile = new File("E:\\IdeaProjects\\MyJavaProjects001\\src\\IOUtils");
        //1.复制文件夹
        FileUtils.copyDirectory(oldFile,newFile);
        //2.复制文件夹到某个文件夹
        FileUtils.copyDirectoryToDirectory(oldFile,newFile);
    }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值