基于commons-IO-2.4版本
一、org.apache.commons.io
IOUtils
简化InputStream,OutputStream,Writer,Reader等的IO操作
内部自动缓存buffer,友好的关闭流closeQuetly,以LineIterator行迭代器的形式读取文件,流,File与流,String的转换。直接从流到String的转换
跳过读取等。
DirectoryWolker<T>抽象类,用于层次遍历目录及子目录。同时给它的子类提供hooks钩子方法以便处理相关事件行为。这些钩子方法以handle开头,由DirecotryWalker抽象类的机制去调用,实现者无需关心。
一般与IO组件的FileFilter结合使用,可以指定遍历深度。这些FIleFilter实现位于IO组件的filefilter包中。
由于遍历过程比较耗时,所以这个遍历过程还提供取消功能。
包含处理文件与目录的操作,如移动,复制,读取,写入,比较,复制,大小,遍历,删除,生成文件校验码等。
LineIterator:行迭代器。一般用于迭代从文件或流中读取的数据。
1.IOUtils:
closeQuietly - these methods close a stream ignoring nulls and exceptions
toXxx/read - these methods read data from a stream
write - these methods write data to a stream
copy - these methods copy all the data from one stream to another
contentEquals - these methods compare the content of two streams
有用的Field: DIR_SEPARATOR,LINE_SEPARATORstatic void closeQuietly(Closeable closeable)用于安静地关闭流stream,reader,writer或socket。
copy方法 可以将数据直接从一个流copy到另外一个流,同时还可以指定字符编码。但是需要注意的是这些数据都会直接通过内存,所以在copy大文件的时候需要特别注意这一点。
copy(Reader input, OutputStream output, Charset/String encoding)
Copy chars from aReaderto bytes on anOutputStreamusing the specified character encoding, and
calling flush.
copy大文件可以是用copyLarge方法,它可以指定缓存char[],byte[]的大小,指定拷贝的范围,长度等。
copyLarge(InputStream input, OutputStream output,