1 package test_demo.fileoper; 2 3 import java.io.*; 4 5 /* 6 * 数值字节流操作,复制二进制文件 7 * 输入流:从文件中读取数据,扩展为数据流(二进制) 8 * 输出流:将数据流数据输出到文件中 9 * 注意关闭输入输出流 10 * */ 11 public class DataInOutSteamOper { 12 public static void main(String args[]) { 13 FileInputStream fis = null; //输入流 14 FileOutputStream fos = null; //输出流 15 //数据流(二进制) 16 DataInputStream dis = null; 17 DataOutputStream dos = null; 18 19 try { 20 fis = new FileInputStream("C:\testdata\filedir\a.jpg"); 21 fos = new FileOutputStream("C:\testdata\filedir\b.jpg"); 22 dis = new DataInputStream(fis); 23 dos = new DataOutputStream(fos); 24 int i = 0; //存放读取的byte数组的长度 25 //通过输入流读取数据,byte[]有默认值 26 while ((i = dis.read()) != -1) { 27 dos.write(i); 28 } 29 System.out.println("文件复制成功!"); 30 } catch (IOException e) { 31 e.printStackTrace(); 32 } finally { 33 try { 34 //关闭输入输出流 35 dos.close(); 36 fos.close(); 37 dis.close(); 38 fis.close(); 39 } catch (IOException e) { 40 e.printStackTrace(); 41 } 42 } 43 } 44 }