黑马程序员:IO流之字节流

[java] view plaincopy
01./* 
02.IO流之字节流的两个基类: 
03.InputStream OutputStream 
04.字节流的缓冲区 
05.BufferedInputStream BufferedOutputStream 
06.*/  
07.import java.io.*;  
08.class IODemo1   
09.{  
10.    public static void main(String[] args) throws IOException  
11.    {  
12.        //fileInput();  
13.        //fileOutput();  
14.        //计算copyPic()方法执行所用的时间  
15.        long start = System.currentTimeMillis();  
16.        copyPic();  
17.        long end = System.currentTimeMillis();  
18.        System.out.println((end-start)+"毫秒");  
19.    }  
20.      
21.      
22.    public static void fileInput()throws IOException  
23.    {  
24.        FileInputStream fis = new FileInputStream("fos.txt");  
25.        //字节流读取演示  
26.        byte[] buf = new byte[1024];  
27.        int len = 0;  
28.        while((len = fis.read(buf))!= -1)  
29.        {  
30.            System.out.println(new String(buf,0,len));  
31.        }  
32.        //字节流特有读取方式。定义一个刚刚好的缓冲区,所以不用循环了  
33.        //但是数据太大时会发生内存溢出。建议定义1024的整数倍。循环读取。  
34.        byte[] buf1 = new byte[fis.available()];  
35.        fis.read(buf1);  
36.        System.out.println(new String(buf1));  
37.        fis.close();  
38.    }  
39.      
40.    //字节流输出演示  
41.    public static void fileOutput()throws IOException  
42.    {  
43.        FileOutputStream fos = new FileOutputStream("fos.txt");  
44.          
45.          
46.        fos.write("djfasfs".getBytes());  
47.          
48.        fos.close();  
49.    }  
50.  
51.    //字节流的缓冲区BufferedInputStream BufferedOutputStream  
52.    public static void copyPic()  
53.    {  
54.        BufferedInputStream bufin = null;  
55.        BufferedOutputStream bufout = null;  
56.        try  
57.        {  
58.            bufin = new BufferedInputStream(new FileInputStream("1.jpg"));  
59.            bufout = new BufferedOutputStream(new FileOutputStream("copy1.jpg"));  
60.            int by = 0;  
61.            while((by = bufin.read())!=-1)  
62.            {  
63.                bufout.write(by);   
64.            }  
65.  
66.        }  
67.        catch (IOException e)  
68.        {  
69.            throw new RuntimeException("复制失败");  
70.        }  
71.        finally  
72.        {  
73.            try  
74.            {  
75.                if(bufin != null)  
76.                    bufin.close();  
77.            }  
78.            catch (IOException e)  
79.            {  
80.                throw new RuntimeException("读取流关闭失败");  
81.            }  
82.            try  
83.            {  
84.                if(bufout != null)  
85.                    bufout.close();  
86.            }  
87.            catch (IOException e)  
88.            {  
89.                throw new RuntimeException("输出流关闭失败");  
90.            }  
91.        }  
92.    }  
93.}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值