java学习--Commons-io组件

文章目录[x]
  1. 1:下载commons-io
  2. 2:使用
  3. 3:练习
  4. 3.1:1.查看文件夹、文件的大小
  5. 3.2:2.列出子孙级文件夹
  6. 3.3:3.读取文件
  7. 3.4:4.文件的写出
  8. 3.5:5.复制文件(文件夹)到文件夹,网络流的使用

Commons-io组件笔记总结

前言

IO流技术在Java中是很重要的一部分,而所谓的Commons-i0则是前辈们已经总结封装好的架包可以直接拿来使用。

ASF-->Apache软件基金会,上面开源了很多的优秀源码,如FileUpload 在实现网页上传时就用的到,Commons-io也在其中。

使用之前我们先要到Apache官网下载软件(Apache网站也是学习java、大数据等必须要了解的)

我们知道工程文件的lib文件夹下一般是架包或者库,先来看一下什么是框架、架包


下载commons-io

先进官网下载-->Apache.org

然后解压压缩包,下面是解压之后的文件

使用


我这里的集成开发环境用的是IntelliJ IDEA Community Edition 2019.3.3  IDE

先在项目下创建一个新的lib文件夹,将上图中选中的的两个jar文件夹复制其中

然后右击选中添加到项目工程

接下来就可以使用了

练习

1.查看文件夹、文件的大小

public class CIOTest01 {
    public static void main(String[] args) {
       // 文件的大小
        long len = FileUtils.sizeOf(new File("C:\\Users\\SGYZ\\IdeaProjects\\IO流技术\\4.jpg"));
        System.out.println(len);
        len = FileUtils.sizeOf(new File("D:\\java\\08_IO流技术"));
        System.out.println(len);

    }
}

2.列出子孙级文件夹

/**
 *
 * 列出子孙级
 */
public class CIOTest02 {
    public static void main(String[] args) {

        Collection<File> files = FileUtils.listFiles(new File("D:\\java\\08_IO流技术"),
                EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
        for (File file:files
             ) {
            System.out.println(file.getAbsolutePath());

        }


        //或选择指定文件扩展名的文件
        files = FileUtils.listFiles(new File("D:\\java\\08_IO流技术"),
                FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("txt")), DirectoryFileFilter.INSTANCE);
        for (File file:files
        ) {
            System.out.println(file.getAbsolutePath());

        }
    }
}

3.读取文件

/**
 *
 * 读取文件的使用
 */
public class CIOTest03 {
    public static void main(String[] args) throws IOException {
      //读取文件
        String msg =  FileUtils.readFileToString(new File("D:\\java\\08_IO流技术\\abc.txt"),"GBK");
        System.out.println(msg);
        System.out.println("*****************************");
        byte [] datas = FileUtils.readFileToByteArray(new File("D:\\java\\08_IO流技术\\abc.txt"));
        System.out.println(datas.length);


        //逐行读取
        List<String> msgs = FileUtils.readLines(new File("D:\\java\\08_IO流技术\\abc.txt"),"GBK");
        for (String temp:msgs
             ) {
            System.out.println(temp);

        }
        System.out.println("*****************************");
        LineIterator it = FileUtils.lineIterator(new File("D:\\java\\08_IO流技术\\abc.txt"),"GBK");
        while (it.hasNext())
        {
            System.out.println(it.nextLine());

        }
    }

}

4.文件的写出

/**
 *
 * 写出文件内容
 */
public class CIOTest04 {
    public static void main(String[] args) throws IOException {
        //写出列表
       FileUtils.write(new File("sgyz.txt"),"学习使人进步","UTF-8");
       FileUtils.writeStringToFile(new File("sgyz.txt"),"\n学习使人进步","UTF-8",true);
       FileUtils.writeByteArrayToFile(new File("sgyz.txt"),"\n学习使人进步\n".getBytes("UTF-8"),true);


       //写出列表
        List<String> datas = new ArrayList<>();
        datas.add("洛尘曦");
        datas.add("雨霖铃");
        datas.add("上官泽");
        FileUtils.writeLines(new File("sgyz.txt"),datas,"*************",true);

    }
}

5.复制文件(文件夹)到文件夹,网络流的使用

public class CIOTest05 {
    public static void main(String[] args) throws IOException {
       //复制文件
        FileUtils.copyFile(new File("C:\\Users\\SGYZ\\IdeaProjects\\IO流技术\\4.jpg"),new File("p.jpg"));
        //复制文件到目录
        FileUtils.copyFileToDirectory(new File("C:\\Users\\SGYZ\\IdeaProjects\\IO流技术\\4.jpg"),new File("lib"));
        //复制目录到目录
 

        //复制URL的内容
        String url = "https://www.baidu.com/img/dong_d7ee3105570f1673ecf33f5bf2f58c35.gif";
        FileUtils.copyURLToFile(new URL(url),new File("q.gif"));

        String datas = IOUtils.toString(new URL("http://www.163.com"),"gbk");
        System.out.println(datas);

    }
}

 

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00