问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 输入输出语句,为什么要一层层的包住呢,直接用最外面的流不行么

发布网友 发布时间:2022-11-08 01:37

我来回答

6个回答

热心网友 时间:2023-11-06 19:23

因为你要实例化的类没有无参构造函数,所以必须传入相应的参数。
这是一种写法,比较方便,结构紧凑。
BufferedReader br = new BufferedReader
(new FileReader("d:/java/javatest/BufferedStream.txt"));
也可以这样写:
String path = "d:/java/javatest/BufferedStream.txt";
FileReader file = new FileReader(path);
BufferedReader br = new BufferedReader(file);
-------------------------------------------------------------------
反正就是你要实例化这个类,就要看看这个类的构造函数是什么。这样一级一级下去就行了。

热心网友 时间:2023-11-06 19:24

这个如果你没有学习过设计模式的话,你应该是不能理解的。

这里用到了Java设计模式中的 装饰模式。
通过层层包装来赋予新的功能。 也可以通过不同的包装来组合成不一样的功能。

通过继承也可以实现这些功能,但是继承是在运行前就固定的。
而装饰模式,可以动态的贴上一个“装饰”,也可以动态的去掉一个不需要的“装饰”,比继承拥有更强的灵活性。

当然,更加灵活的代价就是更加容易出错,甚至组合出一些匪夷所思的功能。

热心网友 时间:2023-11-06 19:24

这里用到了设计模式中的装饰者模式。

BufferedReader 在读取文件字节流过程中起到缓冲作用,可以提高IO读取效率。
只所以在这里用到所谓的层层包住,只是在构造函数中传入FileReader对象,自己封装的话也可以以set的方式传入,Buffer实际意义是缓冲、提高性能,
实际读取文件操作还是在 FileReader 处理的。

热心网友 时间:2023-11-06 19:25

您好,这个是不行的,因为BufferedReader 的构造方法如下:
1.BufferedReader(Reader in)
2.BufferedReader(Reader in, int sz)
都需要一个Reader作为传参。

而FileReader继承与Reader,构造方法有
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
所以可以由FileReader作为它的传参。

而这也体现了一种设计模式,装饰模式,楼主可以百度一下,主要是追加功能的。
希望您的采纳,谢谢

热心网友 时间:2023-11-06 19:25

FileReader fr = new new FileReader("d:/java/javatest/BufferedStream.txt");//读取文件路径,转换成文件流,要读取此句即可
BufferedReader br = new BufferedReader(fr);//读取的时候会提高效率而已

热心网友 时间:2023-11-06 19:26

简单的说,就是BufferedReader的构造函数的参数需要的是一个FileReader类对象而不是一个字符串。
就像你定义了一个函数public void function(int i){},你要用这个函数的时候就必须给他一个int 类型的值,而不能是字符串或者其他。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米平板6Max没有网络怎么办 ...wifi和4G网络我都试过都现实吗没有网络。刚买的是正品没有刷机_百度... 2023年淘宝双11招商规则 淘宝国庆狂欢季招商规则及玩法 淘宝年货买不停招商规则 淘宝超来电活动招商规则 ZIP转换成RAR怎么转换? 衢州醉根艺品有限公司怎么样? 徐谷青主要业绩 徐谷青人物介绍 关于java的语句解释问题 对于java.io.bufferedwriter和java.io.filewriter两个类,下面哪一个功能只有其中 怎么定位车的位置 白事随份子的忌讳微信转账 剁椒红烧鱼步骤 剁椒红烧鱼的烹饪方法 刺激战场发热严重怎么办 手机太烫了能玩吗 CMS垃圾收集器概述与工作原理 简约女孩房间设计图片 请介绍一本平面设计相关的平面构成的书 视觉传达设计大专第一课是什么 五笔输入是学平面设计和广告设计必备的吗 ?? 平面设计报名第一课都讲什么啊? 交通事故中防冻液,空调制冷剂?保险公司赔偿吗 交通事故造成空调冷媒漏了.保险公司赔吗? 汽车防冻液,空调制冷剂保险公司不赔吗 冷媒保险公司不赔吗? 撞车了,冷媒保险公司不赔吗? 华为Nova6se对比三星note9买那个? 山芋做菜怎么做 怎么做简单好吃 下半年中小学教师资格考试笔试将于10月29日举行,考生该如何复习? java人才 草图大师的美国国家美术馆东馆 智能电表显示黄灯怎么解决 大阳125启动要拉风门,不拉不会走或拉了也不会走。这是怎么回事啊。求高手解答 黄灯不闪怎么回事 我是个俗气至顶的人,见山是山,见海是海,见花便是花 怎么结识附近的陌生人?我在一个陌生的地方开了一家小店养家糊口,做生意需要朋友帮衬,怎样和不认识的陌 车辆保险过期了怎么办? 车保险过期了怎么处理 银行收款码推广员累不累 (急)请问QQ空间留言板里中间的比较大的彩色字幕怎么弄啊 大国工匠年度人物颁奖典礼观后感 出车祸了,抢救病人费用保险公司最多可以垫付多少 小米10哪个版本扬声器最好 汽车保险到期怎么续保? 汽车保险到期后需要怎么处理? 陕西味鱿鱼汤怎么做 鱿鱼汤的做法 作平面设计有前途吗 磨合期跑快有事吗? 新买的摩托车磨合期开太快了怎办,还能补救吗