JavaSE补充 | apache-common包的使用,快速完成IO操作
目录
一:apache-common包的使用,快速完成IO操作
1. IOUtils类的使用
2. FileUtils类的使用
一:apache-common包的使用,快速完成IO操作
IO技术开发中,代码量很大,而且代码的重复率较高,为此Apache软件基金会,开发了IO技术的工具类
commonsIO
,大大简化了IO开发! 导入commons-io-2.5.jar包,两种方式:
第一种方式:在项目的根目录下创建一个目录,把jar包拷贝进去,然后右击鼠标点击Add as Library添加进去
第二种方式:File--->Project Structure--->Libraries,进行添加
1. IOUtils类的使用
常用方法:
- 静态方法:IOUtils.copy(InputStream in,OutputStream out)
- 静态方法:IOUtils.closeQuietly
①copy()方法,静态方法,传递字节流,实现文件复制;参数一个是文件的字节流输入对象,另一个是文件的字节流输出对象。
②closeQuietly()方法,静态方法,(任意流对象)悄悄的释放资源,自动处理close()方法抛出的异常
例:使用字节流,实现文件的拷贝,例如:图片的复制
@Testpublic void test5() {FileInputStream fis = null;FileOutputStream fos = null;try {// 使用一个字节流实现文件的复制(比如图片)File srcFile = new File("C:\\\\Users\\\\86177\\\\Pictures\\\\桌面壁纸\\\\7.jpg");File destFile = new File("C:\\\\Users\\\\86177\\\\Pictures\\\\桌面壁纸\\\\77.jpg");// 创建字节流对象fis = new FileInputStream(srcFile);fos = new FileOutputStream(destFile);// 调用方法进行拷贝IOUtils.copy(fis,fos);} catch (IOException e) {throw new RuntimeException(e);} finally {// 关闭资源IOUtils.closeQuietly(fis);IOUtils.closeQuietly(fos);}}
注:使用下面讲的FileUtils类的copyFile()方法,传两个File对象也可以完成以上的操作。
2. FileUtils类的使用
常用方法:
- 静态方法:void copyDirectoryToDirectory(File src,File dest)
- 静态方法:void writeStringToFile(File file,String content)
- 静态方法:String readFileToString(File file)
- 静态方法:void copyFile(File srcFile,File destFile)
①copyDirectoryToDirectory()方法, 静态方法,整个目录的复制,自动进行递归遍历; 参数是两个目录的File;src:要复制的文件夹路径、dest:要将文件夹粘贴到哪里去
void copyDirectoryToDirectory(File src,File dest):
例:将一个目录下所有的内容拷贝到另一个目录(会进行递归拷贝)
@Testpublic void test1() {File srcFile = new File("C:\\\\dev\\\\Mysql8");File destFile = new File("G:\\\\");// 调用方法进行复制,可以递归复制目录try {FileUtils.copyDirectoryToDirectory(srcFile,destFile);} catch (IOException e) {throw new RuntimeException(e);}// 复制成功System.out.println("递归复制成功");}
②writeStringToFile()方法, 静态方法,将内容content写入到file中,参数是文件的File对象
void writeStringToFile(File file,String content)
例:讲一个字符串“abcd”写入到file.txt文件中去
@Testpublic void test2() {File file = new File("file.txt");// 调用方法进行写入操作try {FileUtils.writeStringToFile(file,"abcd");} catch (IOException e) {throw new RuntimeException(e);}// 写入成功System.out.println("写入成功");}
③ readFileToString()方法, 静态方法,读取文件内容,并返回一个String;参数是文件的File对象
String readFileToString(File file)
例:读取某个文件的内容到输出台上
@Testpublic void test3() {File file = new File("C:\\\\dev\\\\hmdp.sql");// 调用方法进行读取,内容返回的是一个字符串String readFileToString = null;try {readFileToString = FileUtils.readFileToString(file);// 也可以多传一个参数,指定字符集} catch (IOException e) {throw new RuntimeException(e);}// 读取成功System.out.println(readFileToString);System.out.println("读取成功");}
④copyFile()方法, 静态方法,普通的文件复制,将一个文本文件拷贝到另一个目录下的文本文件中(区别于copyDirectoryToDirectory递归拷贝);参数一个是文件的File对象,另一个也是文件的File对象(相当于拷贝过去后并起了名)
例:将一个文件拷贝到另一个目录当中去并起名
@Testpublic void test4() {File srcFile = new File("C:\\\\dev\\\\hmdp.sql");File destFile = new File("G:\\\\hmdb-2.sql");// 将一个文件拷贝到另一个目录下try {FileUtils.copyFile(srcFile,destFile);} catch (IOException e) {throw new RuntimeException(e);}// 复制成功System.out.println("复制成功");}