
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呢?这样做有什么区别? 展开
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
我看到一个示例是这么用的。然后我看了下bufferedReader的说明,示例是new BufferedReader(new FileReader(filename)),那么为什么这段代码不这么用、而是先创建了一个inputstream呢?这样做有什么区别? 展开
5个回答
展开全部
第一种方式是先用一个文件字节输入流读取文件,再通过InputStreamReader将字节流转换成字符流,用新生成的字符流构造BufferedReader (BufferedReader 的构造必须是字符流)。
第二种方式是直接用FileReader构造一个字符流,在用这个字符流构造一个BufferedReader
这里的字节流是以byte为单位的一串数据,字符流是以一个个具体的字符为单位的一串数据
第二种方式是直接用FileReader构造一个字符流,在用这个字符流构造一个BufferedReader
这里的字节流是以byte为单位的一串数据,字符流是以一个个具体的字符为单位的一串数据
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过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流会一直存在,直到程序运行结束。
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流会一直存在,直到程序运行结束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FileReader类是InputStreamReader的子类,用到了多态的思想,查查“动态绑定”了解下吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
它们的作用是一样的。都是从字符输入流中读取文本,缓冲各个字节,从而实现了字节的的读取。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说到底底层都是字节流
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询