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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yw540 中级黑马   /  2016-8-21 12:53  /  724 人查看  /  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 个回复

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