四十七、commons-IO

一、commons-IO概述

Commons IO是针对开发IO流功能的工具类库,必须导入第三方jar包才能使用。

主要包括六个区域:

  • 工具类——使用静态方法执行共同任务

  • 输入——用于InputStream和Reader实现

  • 输出——用于OutputStream和Writer实现

  • 过滤器——各种文件过滤器实现

  • 比较器——各种文件的java.util.Comparator实现

  • 文件监听器——监听文件系统事件的组件

二、FilenameUtils

这个工具类是用来处理文件名(译者注:包含文件路径)的,他可以轻松解决不同操作系统文件名称规范不同的问题。
常用方法:

  • getExtension(String path):获取文件的扩展名;
  • getName():获取文件名;
  • isExtension(String fileName,String ext):判断fileName是否是ext后缀名;

三、FileUtils

提供文件操作(移动文件,读取文件,检查文件是否存在等等)的方法。
常用方法:

  • readFileToString(File file):读取文件内容,并返回一个String;
  • writeStringToFile(File file,String content):将内容content写入到file中;
  • copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
  • copyFile(File srcFile, File destFile): 文件复制

实例:文件复制

  • 普通方式
/*
 * 普通方式,完成文件的复制
 */
public class CommonsIODemo01 {
    public static void main(String[] args) throws IOException {
        //method1("D:\\test.avi", "D:\\copy.avi");
        
        //通过Commons-IO完成了文件复制的功能
        FileUtils.copyFile(new File("D:\\test.avi"), new File("D:\\copy.avi"));
    }

    //文件的复制
    private static void method1(String src, String dest) throws IOException {
        //1,指定数据源 
        BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));
        //2,指定目的地
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dest));
        //3,读
        byte[] buffer = new byte[1024];
        int len = -1;
        while ( (len = in.read(buffer)) != -1) {
            //4,写
            out.write(buffer, 0, len);
        }
        //5,关闭流
        in.close();
        out.close();
    }
}
  • commons-io完成文件、文件夹的复制
/*
 * 使用commons-io完成文件、文件夹的复制
 */
public class CommonsIODemo02 {
    public static void main(String[] args) throws IOException {
        //通过Commons-IO完成了文件复制的功能
        FileUtils.copyFile(new File("D:\\test.avi"), new File("D:\\copy.avi"));
        
        //通过Commons-IO完成了文件夹复制的功能
        //D:\基础班 复制到 C:\\abc文件夹下
        FileUtils.copyDirectoryToDirectory(new File("D:\\基础班"), new File("C:\\abc"));
    }
}

三、IOUtils

IOUtils包含处理读、写和复制的工具方法。方法对InputStream、OutputStream、Reader和Writer起作用。

实例:从一个URL读取字节的任务,并且打印它们:

  • 普通方式
InputStream in = new URL( "http://commons.apache.org"   ).openStream();
  try {
     InputStreamReader inR = new InputStreamReader( in );
     BufferedReader buf = new BufferedReader( inR );
     String line;
     while ( ( line = buf.readLine() ) != null ) {
       System.out.println( line );
     }
  } finally {
     in.close();
  }
  • 使用IOUtils
InputStream in = new URL( "http://commons.apache.org" ).openStream();
 try {
    System.out.println(IOUtils.toString(in));
 } finally {
    IOUtils.closeQuietly(in);
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。java.io ...
    Steven1997阅读 13,053评论 1 25
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,264评论 19 139
  • 先创建服务端的APP 1.官网下载Winrun4j。http://winrun4j.sourceforge.net...
    Alex_1799阅读 6,028评论 1 2
  • 心情并不好,因为你肚子痛却没有跟我说,单纯的我以为只是累到而已,这样不是你对自己的不负责,也是对我的不负责。于是...
    da558f1265b7阅读 1,306评论 0 1
  • 我在夜里醒来做梦 夜里的我比白日里清醒百倍 那里有我的小世界 荒诞也好 悲痛也好 担忧也好 哭笑不得也好 一切都那...
    布利lovely阅读 1,490评论 0 0

友情链接更多精彩内容