https://www.bilibili.com/video/BV1ct411n7oG?p=176
拷贝图片文件的例子:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) {
//1、创建源
File src = new File("p.png");//源头
File dest = new File("pcopy.png");//目的地
//2、选择流
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(src);
os = new FileOutputStream(dest);
//3、操作(分段读取)
byte[] flush = new byte[1024];//缓冲容器
int len = -1;//接收长度
while((len = is.read(flush)) != -1) {
os.write(flush, 0, len);//分段写出
os.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//4、释放资源 分别关闭 先打开的后关闭
try {
if(null != os) {
os.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(null != is) {
is.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
运行这个程序后,创建了pcopy.png,图片内容和原来的p.png一样。
将它写成一个方法:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) {
copy("src/Test.java", "copy.txt");
}
public static void copy(String srcPath, String destPsth) {
//1、创建源
File src = new File(srcPath);//源头
File dest = new File(destPsth);//目的地
//2、选择流
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(src);
os = new FileOutputStream(dest);
//3、操作(分段读取)
byte[] flush = new byte[1024];//缓冲容器
int len = -1;//接收长度
while((len = is.read(flush)) != -1) {
os.write(flush, 0, len);//分段写出
os.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//4、释放资源 分别关闭 先打开的后关闭
try {
if(null != os) {
os.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(null != is) {
is.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}