1 /** 2 * 需求:拷贝一个图片 3 * 思路: 4 * 1.创建一个字符输入流和图片相关联. 5 * 2.用字节写入流对创建图片文件,用于存储到图片数据. 6 * 3.通过循环续写,完成数据的存储. 7 * 4.关闭资源. 8 * 9 * 步骤: 10 * 11 * 总结: 12 * 1.文件输入字节流 和 文件输入字符流 一样,读到文件的结束标记的时候都是返回 -1 13 * 2.FileInputStream 和 FileOutputStream 相当于在 InputStream OutputStream 的基础上指定了数据源和数据目 14 * 的地,所以可以实现具体的读写操作 15 */ 16 import java.io.FileInputStream; 17 import java.io.FileOutputStream; 18 import java.io.IOException; 19 20 class CopyPic { 21 public static void main(String[] args) { 22 FileInputStream fis = null; 23 FileOutputStream fos = null; 24 try { 25 fis = new FileInputStream("D:\\2.jpg"); // 建立字符输入流对象和文件相关联 26 fos = new FileOutputStream("copy.jpg"); // 建立字符输出流对象指定路径和文件名字 27 byte[] buf = new byte[1024]; // 创建一个字节数组用来保存读取的数据 28 29 int num = 0; // 定义一个变量用于保存读取到的字节数 30 31 while ((num = fis.read(buf)) != -1) { 32 fos.write(buf, 0, num); 33 } 34 } catch (IOException e) { 35 throw new RuntimeException("路径错误"); 36 } finally { 37 try { 38 if (fos != null) // 判断创建文件失败是否为null; 39 fos.close(); 40 } catch (IOException e) { 41 System.out.println("输出关闭失败"); 42 } 43 try { 44 if (fis != null) 45 fis.close(); 46 } catch (IOException e) { 47 System.out.println("输入关闭失败"); 48 } 49 } 50 } 51 }