一、题目描述
复制文件
二、代码实现
2.1 try-catch-finally
package com.itheima.iostream;
import java.io.*;
public class StreamTest3 {
public static void main(String[] args) throws Exception {
//复制文件
InputStream is = null;
OutputStream os = null;
try {
//创建一个字节文件输入流与源文件接通
is = new FileInputStream("HeiMaChengxuyuan\\src\\itheima1.txt");
//创建一个文件输出流对象与目标文件接通
os = new FileOutputStream("HeiMaChengxuyuan\\src\\itheima1copy.txt");
//将源文件所有字节写入程序
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
//将程序中所有字节写出目标文件
os.write(buffer,0,len);
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
//关闭流,释放资源
try {
if (os != null) os.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
if (is != null) os.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
2.2 try-with-resource
package com.itheima.iostream;
import java.io.*;
public class StreamTest4 {
public static void main(String[] args) {
//复制文件
try (
//创建一个字节文件输入流与源文件接通
InputStream is = new FileInputStream("HeiMaChengxuyuan\\src\\itheima1.txt");
//创建一个文件输出流对象与目标文件接通
OutputStream os = new FileOutputStream("HeiMaChengxuyuan\\src\\itheima1copy.txt");
){
//将源文件所有字节写入程序
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) {
//将程序中所有字节写出目标文件
os.write(buffer,0,len);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}