FileInputStream.FileOutputStream执行图片复制

时间:2023-12-30 16:14:14
 /**
* 需求:拷贝一个图片
* 思路:
* 1.创建一个字符输入流和图片相关联.
* 2.用字节写入流对创建图片文件,用于存储到图片数据.
* 3.通过循环续写,完成数据的存储.
* 4.关闭资源.
*
* 步骤:
*
* 总结:
* 1.文件输入字节流 和 文件输入字符流 一样,读到文件的结束标记的时候都是返回 -1
* 2.FileInputStream 和 FileOutputStream 相当于在 InputStream OutputStream 的基础上指定了数据源和数据目
* 的地,所以可以实现具体的读写操作
*/
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; class CopyPic {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("D:\\2.jpg"); // 建立字符输入流对象和文件相关联
fos = new FileOutputStream("copy.jpg"); // 建立字符输出流对象指定路径和文件名字
byte[] buf = new byte[1024]; // 创建一个字节数组用来保存读取的数据 int num = 0; // 定义一个变量用于保存读取到的字节数 while ((num = fis.read(buf)) != -1) {
fos.write(buf, 0, num);
}
} catch (IOException e) {
throw new RuntimeException("路径错误");
} finally {
try {
if (fos != null) // 判断创建文件失败是否为null;
fos.close();
} catch (IOException e) {
System.out.println("输出关闭失败");
}
try {
if (fis != null)
fis.close();
} catch (IOException e) {
System.out.println("输入关闭失败");
}
}
}
}