我们为什么需要CommonsIO?
Java提供的IO流类,均是较为基础的功能,在进行复杂操作时需要做大量的编程工作,而且往往都是功能类似代码重复的工作。
Apache-commons工具包中的IOUtils/FileUtils工具类,为我们提供了更加简单、功能更加强大的文件操作和IO流操作功能。
CommonsIO
要想使用,首先当然是前往下载:http://commons.apache.org/proper/commons-io/download_io.cgi
我们一般都是在Windows系统下进行开发,则下载.zip的压缩包。建议source也下载,并关联,方便查看源码。
旁边导航栏可以直接进入API文档。
将commons-io的jar包导入工程,则可以使用了。
FileUtils
FieUtils类中的常用方法:
方法 | 说明 |
---|---|
cleanDirectory | 清空目录,但不删除目录。 |
contentEquals | 比较两个文件的内容是否相同。 |
copyDirectory | 将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的 文件。 |
copyFile | 将一个文件拷贝到一个新的地址。 |
copyFileToDirectory | 将一个文件拷贝到某个目录下。 |
copyInputStreamToFile | 将一个输入流中的内容拷贝到某个文件。 |
deleteDirectory | 删除目录。 |
deleteQuietly | 删除文件。 |
listFiles | 列出指定目录下的所有文件。 |
openInputSteam | 打开指定文件的输入流。 |
readFileToString | 将文件内容作为字符串返回。 |
readLines | 将文件内容按行返回到一个字符串数组中。 |
size | 返回文件或目录的大小。 |
write | 将字符串内容直接写到文件中。 |
writeByteArrayToFile | 将字节数组内容写到文件中。 |
writeLines | 将容器中的元素的toString方法返回的内容依次写入文件中。 |
writeStringToFile | 将字符串内容写到文件中。 |
IOUtils
IOUtils类中的常用方法:
方法 | 说明 |
---|---|
buffer方法 | 将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小。 |
closeQueitly方法 | 关闭流。 |
contentEquals方法 | 比较两个流中的内容是否一致。 |
copy方法 | 将输入流中的内容拷贝到输出流中,并可以指定字符编码。 |
copyLarge方法 | 将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝。 |
lineIterator方法 | 返回可以迭代每一行内容的迭代器。 |
read方法 | 将输入流中的部分内容读入到字节数组中。 |
readFully方法 | 将输入流中的所有内容读入到字节数组中。 |
readLine方法 | 读入输入流内容中的一行。 |
toBufferedInputStream,toBufferedReader | 将输入转为带缓存的输入流。 |
toByteArray,toCharArray | 将输入流的内容转为字节数组、字符数组。 |
toString | 将输入流或数组中的内容转化为字符串。 |
write方法 | 向流里面写入内容。 |
writeLine方法 | 向流里面写入一行内容。 |