关于缓冲流的问题

关于缓冲流的问题

1
2
3
4
5
6
7
8
9
10
11
以下程序执行读写过程是什么样的,为什么不需要fis.read()和fos.werite()?请详细解释一下,谢谢!
                        FileOutputStream fos = new FileOutputStream("imooc.txt");
            BufferedOutputStream bos=new BufferedOutputStream(fos);
            FileInputStream fis=new FileInputStream("imooc.txt");
            BufferedInputStream bis=new BufferedInputStream(fis);
            long startTime=System.currentTimeMillis();//当前系统时间
            bos.write(50);
            bos.write('a');
            bos.flush();
            System.out.println(bis.read());
            System.out.println((char)bis.read());


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
无双er 2019-04-06 11:37:59

程序执行读写过程是:将50和a写入到缓冲流中,将缓冲流包装成文件输出流写入到"imooc.txt",然后清空缓冲。文件输入流读取到"imooc.txt",包装成缓冲流,println将缓冲流输出到控制台。


首先,因为BufferedOutputStream和BufferedInputStream比传统的FileInputStream和 FileOutputStream快了好几倍,所以,采用了Buffered缓冲流。而缓冲流中有自己的读写方法,所以就不需要fis.read()和fos.werite(),取而代之的是 bos.write(50);和 bos.write('a');


最后,请注意异常处理和关闭流,你可以使用try-catch-resource或者close来关闭。使用close关闭时应是先开后关,后开先关。


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码