IO流-FileUtils的使用(十一)
-
FileUtils类中常用的方法:
- cleanDirectory :清空目录,但不删除目录
- contentEquals :比较两个文件的内容是否相同
- copyDirectory :将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的文件
- copyFile :将一个文件拷贝到一个新的地址
- copyFileToDirectory :将一个文件拷贝到某个目录下。
- copyInputStreamToFile ;将一个输入流的内容拷贝到某个文件。
- copyFile:将一个文件拷贝到一个新的地址。
- copyFileToDirectory :将一个文件拷贝到某个目录下。
- copyInputStreamToFile :将一个输入流中的内容拷贝到某个文件
- deleteDirectory :删除目录
- deleteQuietly :删除文件
- listFiles :列出指定目录下的所有文件
- openInputStream :打开指定文件的输入流
- readFileToString :将文件内容作为字符串返回
- readLines :将文件内容按行返回到一个字符串数组中
- size :返回文件或目录的大小
- write :将文件字符串内容直接写到文件中
- writeByteArrayToFile :将字节数组内容写到文件中
- writeLines :容器中的元素toString 方法返回的内容依次写入文件中
-
FileUtils类的使用一:
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; public class FileUtilsDemo01 { public static void main(String[] args)throws Exception { //将字节流转字符流当中,也有utf-8指定编码格式 //new InputStreamReader(new FileInputStream("d:/sxt.txt"),"utf-8"); //将文件内容作为字符串输出 String content= FileUtils.readFileToString(new File("d:/sxt.txt"),"utf-8");//utf-8指定编码格式 System.out.println(content); //现在我们读取文本文件一行就搞定了,比java.io提供的流对象更加方便、简洁 } }
-
FileUtils类的使用二:
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.FileFilter; public class FileUtileDemo2 { public static void main(String[] args)throws Exception { //将一个目录内容拷贝到另一个目录,可以通过FileFilter过滤需要拷贝的文件 //new File("d:/a")拷贝文件的源位置,new File("c:/a")拷贝文件的目的位置,FileFilter接口过滤需要拷贝的文件 FileUtils.copyDirectory(new File("d:/a"), new File("c:/a"), new FileFilter() { //在文件拷贝时的过滤条件 @Override public boolean accept(File pathname) { if (pathname.isDirectory()||pathname.getName().endsWith("html")){ //只拷贝目录和html文件 return true; } return false; } }); } }
-
IOUtils的使用
一些常用的方法:
- buffer 方法:将传入的流 进行包装,变成缓冲流。并可以通过参数指定缓冲的大小
- closeQueitly 方法:关闭流
- contentEquals 方法:比较两个流中的内容是否一致
- copy 方法:将输入流中的内容拷贝到输出流中,并且可以指定字符编码
- copyLarge 方法:将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝
- lineIterator 方法:返回可以迭代每一行内容的迭代器
- read 方法:将输入流中的部分内容读入都字节数组中
- readFully 方法:将输入流中的所有内容读入到字节数组中
- readLine 方法:读入输入流内容中的一行
- toBufferedInputStream、toBufferedReader:将输入转为带缓存的输入流
- toByArray、toCharArray:将输入流的内容转为字节数组、字符数组
- toString:将输入流或数组中的内容转化为字符串
- write 方法:想流里面写入内容
- writeLine 方法:想流里面写入一行内容
-
IOUtils的具体实现
import org.apache.commons.io.IOUtils; import java.io.FileInputStream; public class IOUtilsDemo { public static void main(String[] args)throws Exception { //用IOUtils类中的toString方法,将一个字节输入流转换成字符串 String content=IOUtils.toString(new FileInputStream("d:/sxt.txt"),"utf-8"); System.out.println(content); } }