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 }