黑马程序员技术交流社区

标题: 内存输出流之黑马面试题 [打印本页]

作者: yw540    时间: 2016-8-21 12:53
标题: 内存输出流之黑马面试题
定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)
分析:
   1,read(byte[ ] b)是字节输入流的方法,创建FileInputStream,关联a.text
   2,创建内存输出流,将读到的数据写到内存输出流中。
   3,创建字节数组,长度为5
   4,将内存输出流的数据全部转换为字符串打印
   5,关闭输入流。

                        FileInputStream fis = new FileInputStream("a.txt");                //创建字节输入流,关联a.txt
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();        //创建内存输出流
                        byte[] arr = new byte[5];                                                //创建字节数组,大小为5
                        int len;
                        while((len = fis.read(arr)) != -1) {                                //将文件上的数据读到字节数组中
                                baos.write(arr, 0, len);                                //将字节数组的数据写到内存缓冲区中
                        }
                        System.out.println(baos);                                //将内存缓冲区的内容转换为字符串打印
                        fis.close();
作者: yw540    时间: 2016-8-21 12:56
。。。。。。。。。。。。。。
作者: zztierlie    时间: 2016-8-21 16:18
赞一个,赞一个,么么哒
作者: 阿卜    时间: 2016-8-21 17:17
baos应该要flush()一次再打印吧?
作者: Fightingdd    时间: 2016-8-21 17:56
太棒了!
作者: 袁志娜    时间: 2016-8-22 22:15
感觉即使不是内存输出直接用InputStream和OutputStream 也可以
作者: itcoder    时间: 2016-8-22 22:36
顶顶顶顶顶顶顶顶顶顶顶
作者: 劉芒    时间: 2016-8-22 23:10
不错不错,谢谢楼主分享
作者: wq1194165366    时间: 2016-8-23 00:16
效率不是很低吗, 五个字节,可以试试带缓冲的 最起码 有8k字节输入 8k 输出




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2