使用Java字节流可以复制一切文件,因为计算机底层文件即是字节组成。
字节流复制思想: 字节是一切文件的组成,所以字节流适合所有文件的复制 字节流适合做一切文件复制 复制文件思想: 1.创建字节输入流,读取文件到内容,获取文件内容 2.创建字节输出流,以刚才输入流内容作为数据源,写入磁盘
例子如下:复制了图片,图片源路径为当前工程下src文件中,目标文件路径及文件名可以自定义,但文件格式需要一样(都是png图像)
代码如下:
import java.io.*;
/**
复制图片文件:使用字节流
保证复制的前后格式一样
*/
public class InputStreamCopyDemo {
public static void main(String[] args) {
InputStream in = null;
OutputStream out = null;
File inf = new File("src/demoIma1.png");
try {
in = new FileInputStream(inf);
out = new FileOutputStream("src/copiedimg.png");
int len;
//边读边追加,一次一个字节
// while ((len = in.read()) != -1){
// out.write(len);
// }
// //边读边写,一次1KB
byte[] buffer = new byte[1000];
while ((len = in.read(buffer)) != -1){
out.write(buffer, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(in != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}