java打开文件的问题,InputStream BufferedReader相关

FileInputStreamfileIS=newFileInputStream(path);BufferedReaderbuf=newBufferedReader(ne... FileInputStream fileIS = new FileInputStream(path);
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
我看到一个示例是这么用的。然后我看了下bufferedReader的说明,示例是new BufferedReader(new FileReader(filename)),那么为什么这段代码不这么用、而是先创建了一个inputstream呢?这样做有什么区别?
展开
 我来答
转眯爱j
推荐于2016-03-22 · TA获得超过283个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:85.1万
展开全部
第一种方式是先用一个文件字节输入流读取文件,再通过InputStreamReader将字节流转换成字符流,用新生成的字符流构造BufferedReader (BufferedReader 的构造必须是字符流)。

第二种方式是直接用FileReader构造一个字符流,在用这个字符流构造一个BufferedReader

这里的字节流是以byte为单位的一串数据,字符流是以一个个具体的字符为单位的一串数据
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
推荐于2016-11-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1830万
展开全部
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hellowant
2011-09-03
知道答主
回答量:10
采纳率:0%
帮助的人:1.5万
展开全部
FileReader类是InputStreamReader的子类,用到了多态的思想,查查“动态绑定”了解下吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangqing0417
2011-09-03
知道答主
回答量:22
采纳率:0%
帮助的人:12.1万
展开全部
它们的作用是一样的。都是从字符输入流中读取文本,缓冲各个字节,从而实现了字节的的读取。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ch...o@sina.com
2011-09-03 · 超过32用户采纳过TA的回答
知道答主
回答量:238
采纳率:0%
帮助的人:121万
展开全部
说到底底层都是字节流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式