黑马程序员技术交流社区
标题:
BufferedReader本来就是一个缓冲流 为什么读到的字符还要存
[打印本页]
作者:
Hi天天向上
时间:
2014-6-5 12:06
标题:
BufferedReader本来就是一个缓冲流 为什么读到的字符还要存
import java.io.*;
public class CopyDemo {
public static void main(String[] args) {
BufferedReader br = null;
BufferedWriter bw = null;
try
{
br = new BufferedReader(new FileReader("C:\\Users\\LYH\\Desktop\\java1.txt"));
bw = new BufferedWriter(new FileWriter("C:\\Users\\LYH\\Desktop\\java4.txt"));
//用的是readLine方法
// String line = null;
// while((line=br.readLine())!=null)
// {
// bw.write(line);
// bw.newLine();
// }
/**用read(char[])
* 用char[]
*
* */
int len = 0;
char[] ch = new char[1024];
while((len=br.read(ch))!=-1)
{
bw.write(ch,0,len);
}
}catch(IOException e){
e.printStackTrace();
}
finally
{
try
{
if(br!=null)
br.close();
}
catch(IOException e)
{
throw new RuntimeException("关闭读取流失败!");
}
try
{
if(bw!=null)
bw.close();
}
catch(IOException e)
{
throw new RuntimeException("关闭写入流失败!");
}
}
}
}
如题 BufferedReader本来就是缓冲流 为什么读到的字符还要存到String里面或者char[]里面呢
有谁能说下这个缓冲流和char[]或者String都干了什么 这里面的原理是什么呢 能从底层说下么
拜托了 大神们
作者:
yinxjfly
时间:
2014-6-5 12:22
BufferedReader里面封装了数组,但是它又是read的包装类,所以既可以调用自己的readLine()方法,也可以调用
被装饰的Read子类的read(char[] buf)的方法。
这两个方法所属的类是不同的,而BuffferedReader底层还是调用的read()单个字符的方法,它只是将读到的数据临时存储起来,
你仔细研究一下毕老师的模拟BufferedReader哪一节的视频就理解了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2