关于缓冲流的问题
以下程序执行读写过程是什么样的,为什么不需要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());
2
收起
正在回答 回答被采纳积分+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关闭时应是先开后关,后开先关。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星