一、复习
1、数据流的基本概念的复习。
2、节点流,处理流,字节流,字符流(只能处理字符数据)。
3、出入/输出流体系。用于实现I/O操作的流类和接口在java.io包中。
二、缓冲的字符流(BufferedReader/BufferedWriter)
1、采用缓冲处理是为了提高效率,如果没有缓存,例如FileReader对象,每次调用read()方法进行读操作时,都会直接去文件中读取字节,转换成字符并返回,这样频繁的读 取文件效率很低。
2、缓冲的字符流的出现提高了对流的操作效率,原理就是将数组进行封装。
3、在使用缓冲的字符流对象时,缓冲的存在是为了增强流的功能,因此在建立缓冲的字符流对象时,要先有流对象的存在。
三、使用缓冲的字符流时其实就是使用流对象的方法,只不过加入了数组,对数据进行了临时存储,为了提高操作数据的效率。
四、方法readLine()的原理
该方法用的还是与缓冲的字符流相关联的流对象的read()方法,只不过,每一次读到一个字符,先不进行具体操作,先进行临时存储,当读取到回车标记时,将临时容器中存储的数据一次性返回。
五、关于字节流和字符流的特点
1、 字节流可以操作任何数据。
2、 字符流使用的是字符数组;字节流使用的是字节数组。
六、BufferedReader的特有方法:public String readLine();//一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。当读到末尾时,返回null。
七、BufferedWriter的特有方法:publicvoid newLine();//写出平台相关的行分隔符来标记一行的终止。Windows平台下为’\n’。
八、粘贴一段今天的作业代码,这代码之中因为缺少一句很简单的代码,使我烦恼了半个小时!经过别人的提醒之后,我才忽然明白自己的失误!这个对我很有提醒作用,使我在今后的编程道路上更加认真!
代码如下:
package wsp.io;
import java.io.*;
public class zy8301 { //今天的作业
public static void main(String[] args){
FileWriter fw = null;
FileReader fr = null;
BufferedReader br = null; //利用缓冲的方法 提高运行的效率
BufferedWriter bw = null; //BufferedReader 和BufferedWriter
char[] arr= new char[1024];
try {
fw = new FileWriter("C:/Users/Vshoping/lianxi/temp1.txt");
bw = new BufferedWriter(fw);
fr = new FileReader("E:/MyEclipse9/wsp/src/wsp/io/zy8301.java");
br = new BufferedReader(fr,225);
String str = null;
while((str=br.readLine())!=null){
System.out.println(str);
bw.write(str);
************
//引用:BufferedWriter的特有方法:public void newLine();//写出平台相关的行分隔符来标记一行的终止。Windows平台下为’\n’。
}
bw.flush();
} catch (IOException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
finally {
if(br!=null){
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
}
}
}
在******部分是缺少的代码:bw.newLine();