A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© yw540 中级黑马   /  2016-8-21 12:53  /  860 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个文件输入流,调用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();

8 个回复

正序浏览
效率不是很低吗, 五个字节,可以试试带缓冲的 最起码 有8k字节输入 8k 输出
回复 使用道具 举报
劉芒 中级黑马 2016-8-22 23:10:19
8#
不错不错,谢谢楼主分享
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
感觉即使不是内存输出直接用InputStream和OutputStream 也可以
回复 使用道具 举报
太棒了!
回复 使用道具 举报
baos应该要flush()一次再打印吧?
回复 使用道具 举报
赞一个,赞一个,么么哒
回复 使用道具 举报
。。。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马