很明显 楼主对BufferedWriter 和BufferedReader的功能没没有搞明白 没有这两个类也是可以直接用字节流完成键盘录入 和所有的文本copy的,他们的存在是为了起到装饰作用:即基于字节流的功能并对其增强(提高字节流的读写效率);也就是缓冲区的概念;
这里就要说到读写流的工作原理、字节流的工作原理:
以copy为例:
1字节流读取从A盘中每读取一个字节就会把其存入硬盘中,再写入B盘,然后再从A盘读取下一个字节,不停的重复从动作以完成copy工作;
2BufferedRead 和BufferedWriter的工作过程是,先从A盘中读取一定量的数据存放内存中(如readLine()方法),再写入B盘中;这个过程中减少了硬盘磁头不停的再A和B之间来回跑的次数,从而提高了效率;
举个例子方便你理解吧;
把A碗中的豌豆移到B碗中。
字节流就相当于用筷子不停的从A碗中夹到B碗中
BufferedReader 和BuffereWriter就相当于给了你一个勺,勺就是缓冲区, |