【小家java】Java之Apache Commons-IO使用精讲(FileUtils、IOUtils、FileFilter全覆盖)(下)

简介: 【小家java】Java之Apache Commons-IO使用精讲(FileUtils、IOUtils、FileFilter全覆盖)(下)

FileUtils


FileUtils类包含使用File对象的工具方法。包括读写、复制和比较等等。


    public static void main(String[] args) throws IOException {
       File file = new File("/application.properties");
       List<String> lines = FileUtils.readLines(file, "UTF-8");
       System.out.println(lines);
   }


  • byteCountToDisplaySize:挺人性化的一个方法,可以吧字节数组的长度,转化成用户良好的单位,如EB、GB、MB、KB、bytes等等


    public static void main(String[] args) throws Exception {
        try (InputStream in1 = new URL("http://commons.apache.org").openStream()) {
            String s = FileUtils.byteCountToDisplaySize(IOUtils.toByteArray(in1).length);
            System.out.println(s); //26 KB
        }
    }


checksum、checksumCRC32:类似于校验MD5和。如long csum = FileUtils.checksum(file, new CRC32()).getValue();,一般下载来一个文件后,为了安全可以校验一把


cleanDirectory:把指定文件夹里面的东西全部删除掉


contentEquals:依赖于IOUtils.contentEquals


convertFileCollectionToFileArray:把File的集合转换为File的数组


copyDirectory(srcDir,destDir,FileFilter):吧src的文件夹内容copy(或者剪切)到dest里面,可以使用FileFilter过滤


copyFile:可以一个文件copy到另外一个文件,也可以copy到outputStream里面。


copyFileToDirectory:


copyInputStreamToFile:


copyURLToFile:


deleteDirectory:递归删除这个文件夹里面的所有东西(包括文件夹自己)


deleteQuietly:既可以删除文件,也可以递归删除文件夹


directoryContains:指定文件夹下是否包含某个文件


forceDelete:强制删除一个文件。如果是文件夹,也会递归删除掉。


forceMkdir:强制创建一个目录


getTempDirectoryPath:拿到IO的临时文件夹路径


isFileNewer、isFileOlder:判断该文件的最后修改时间,是否新于给定的Date时间(或者给定文件的lastModified)


listFiles、listFilesAndDirs:拿到指定文件夹下所有的文件


moveDirectory、moveFile


openInputStream:效果同new FileInputStream


openOutputStream:同上


readFileToByteArray、readFileToString、readLines


sizeOf、sizeOfAsBigInteger、:拿到文件/文件夹的大小


sizeOfDirectory、sizeOfDirectoryAsBigInteger


toFile(URL url):吧网络上的资源字节编程一个文件


write、writeByteArrayToFile、writeLines、writeStringToFile:把传入的data串写入到File里面

FilenameUtils


FilenameUtils类包含工具方法不需要使用File对象就可以操作文件名。该类致力于屏蔽Unix和Windows之间的不同,避免这些环境之间的转换(例如,从开发到生产)。 开发在windows、生产在Linux


一般使用较少,这里不做过多介绍.

FileSystemUtils:2.6版本已经废弃。推荐使用JDK自己的FileStore代替


LineIterator:行迭代器


提供灵活的方式使用一个基于行的文件。可以直接,或通过FileUtils或IOUtils的工厂方法创建实例。推荐使用模式:


备注:也是需要close的

Filefilter:包含IOFileFilter、FilenameFilter等。可以在copy、remove等等操作的时候,对文件进行各种过滤行为


此包自带一些常用的Filter如:AgeFileFilter、CanReadFileFilter、CanWriteFileFilter、DirectoryFileFilter、EmptyFileFilter、HiddenFileFilter等等。基本能满足我们所有需求


比较器:比如按照文件名倒序、文件大小倒序这种需求,用此比较器会非常方便。也内置了很多的比较器实现


如:SizeFileComparator、ReverseComparator、LastModifiedFileComparator、ExtensionFileComparator等等


org.apache.commons.io.input和org.apache.commons.io.output包含各种有用、实用的流实现。


1.空输出流——默默的吸收、消化发给它的所有数据。


2.计算流——统计传递的字节数。(CountingInputStream、CountingOutputStream,这个挺好用的)


3.代理流——委托恰当的方法代理。


CopyUtils:已经过期,请使用IOUtils代替

相关文章
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
82 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
分布式计算 Java 大数据
大数据-147 Apache Kudu 常用 Java API 增删改查
大数据-147 Apache Kudu 常用 Java API 增删改查
33 1
|
3月前
|
IDE Java 分布式数据库
Apache HBase 落地JAVA 实战
Apache HBase 落地 Java 实战主要涉及使用 Java API 来操作 HBase 数据库,包括表的创建、删除、数据的插入、查询等操作。以下是一个基于 Java 的 HBase 实战指南,包括关键步骤和示例代码。
212 23
|
3月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
2月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
38 1
|
2月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
86 1
|
2月前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
51 0
|
3月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
2月前
|
存储 Java 程序员
【Java】文件IO
【Java】文件IO
38 0
|
2月前
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
45 0

推荐镜像

更多