目录
一: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()方法抛出的异常
例:使用字节流,实现文件的拷贝,例如:图片的复制
@Test
public 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):
例:将一个目录下所有的内容拷贝到另一个目录(会进行递归拷贝)
@Test
public 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文件中去
@Test
public 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)
例:读取某个文件的内容到输出台上
@Test
public 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对象(相当于拷贝过去后并起了名)
例:将一个文件拷贝到另一个目录当中去并起名
@Test
public 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("复制成功");
}