原创

Java复习之-CommonsIO的使用

1.导入jar包到项目

1.1.下载jar包

http://commons.apache.org/proper/commons-io/

1.2.使用说明

帮助文档在解压后的docs目录下

主要使用的jar包有commons-io-2.6.jar,commons-io-2.6-sources.jar

1.3.项目中导入

idea下web项目导入本地jar包

1.File下选择Project Structure
2.选择Modules,右边子选项卡Dependencies
3.点击+号,选择第一个导入本地jar
4.Export打勾,添加到项目中

CommonsIO类方法的使用:

1.文件属性相关

//获取文件大小
        long len = FileUtils.sizeOf(new File("D:\\测试目录\\","split.png"));
        System.out.println(len);
        //获取目录大小
        len = FileUtils.sizeOf(new File("D:\\测试目录\\"));
        System.out.println(len);

2.文件目录遍历相关

//获取某目录下的所有非空文件,不包括目录下的目录and空文件,EmptyFileFilter.NOT_EMPTY为过滤器,过滤空文件
        Collection<File> files = FileUtils.listFiles(new File("D:\\测试目录\\"), EmptyFileFilter.NOT_EMPTY,null);
        for (File file : files){
            System.out.println(file.getAbsolutePath());
        }

        //获取子孙级的文件,都是操作文件,并不是目录,DirectoryFileFilter.INSTANCE为获取子孙级,也就是目录下的目录下的文件
        files = FileUtils.listFiles(new File("D:\\测试目录\\"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
        for (File file : files){
            System.out.println(file.getAbsolutePath());
        }

        //获取后缀为java的文件,new SuffixFileFilter("java")
        files = FileUtils.listFiles(new File("D:\\测试目录\\"), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
        for (File file : files){
            System.out.println(file.getAbsolutePath());
        }


        //获取既是java为后缀,而且不为空的文件,FileFilterUtils.and()
        files = FileUtils.listFiles(new File("D:\\测试目录\\"), FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);
        for (File file : files){
            System.out.println(file.getAbsolutePath());
        }


        //获取java为后缀的文件,或者txt为后缀的文件,FileFilterUtils.or()
        files = FileUtils.listFiles(new File("D:\\测试目录\\"), FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("txt")), DirectoryFileFilter.INSTANCE);
        for (File file : files){
            System.out.println(file.getAbsolutePath());
        }

3.文件内容读取相关

//读取文件
        String msg = FileUtils.readFileToString(new File("emp.txt"),"UTF-8");
        System.out.println(msg);

       //读取文件到byte[]数组中
        byte[] datas = FileUtils.readFileToByteArray(new File("emp.txt"));
        System.out.println(datas.length);

        //逐行读取到容器中
        List<String> msgs =  FileUtils.readLines(new File("emp.txt"),"UTF-8");
        for (String str : msgs){
            System.out.println(str);
        }

        //使用迭代输出
        LineIterator it = FileUtils.lineIterator(new File("emp.txt"),"UTF-8");
        while (it.hasNext()){
            System.out.println(it.nextLine());
        }

4.文件写出相关

//写出文件下面两个方法是同样的效果,true指定为不覆盖,以追加的方式写入,默认为false
        FileUtils.write(new File("happy.txt"),"学习使我快乐","UTF-8",true);
        FileUtils.writeStringToFile(new File("happy.txt"),"学习真开心呢","UTF-8",true);

        //使用byte写出文件
        FileUtils.writeByteArrayToFile(new File("happy.txt"),"学习是需要坚持不懈的".getBytes("UTF-8"),true);

        //写出列表内容
        List<String> listdata = new ArrayList<>();
        listdata.add("码云");
        listdata.add("赵云");
        listdata.add("七彩祥云");
        //第三个参数为连接符,如果不指定则默认是回车符
        FileUtils.writeLines(new File("happy.txt"),listdata,"...",true);

5.文件复制相关

//复制文件    第一参数为源,第二参数为新文件的名字
        FileUtils.copyFile(new File("D:\\测试目录\\split.png"),new File("split-copy.png"));

        //复制文件到目录
        FileUtils.copyFileToDirectory(new File("D:\\测试目录\\split.png"),new File("D:\\测试目录\\lib"));

        //复制目录到目录
        FileUtils.copyDirectoryToDirectory(new File("D:\\测试目录\\lib"),new File("D:\\测试目录\\lib2"));

        //复制URL内容
        String url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1566472420967&di=edb923ca003936a34a474e0e94722dfc&imgtype=0&src=http%3A%2F%2Fe.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2F4610b912c8fcc3cef70d70409845d688d53f20f7.jpg";
        FileUtils.copyURLToFile(new URL(url),new File("nb.jpg"));

        //以字符串形式获取URL内容
        String baidustr = IOUtils.toString(new URL("http://www.baidu.com"),"UTF-8");
        System.out.println(baidustr);
java
  • 作者:兰总(联系作者)
  • 发表时间:2019-08-22 16:49
  • 版权声明:自由转载-非商用-保持署名
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论