一、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);
}
网友评论