缓冲字符流为BufferedReader,它是处理流(包装流),实现了reader接口

通过处理流的方式去对字符数据进行操作,相对于节点流效率较高(有8kb的char数组
且有readLine方法)
需要传入一个FileReader对象,对磁盘中的外部文件进行读取到内存中的操作
这个FileReader对象有的普通方法,都可以通过BufferReader.方法名去进行调用
如果想要追加的话,同样是在new FileReader对象的时候,使第二个参数传入true
这是典型的面向接口编程的思想



package Work4;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferReaderTest {
public static void main(String[] args) {
//缓冲字符输入流,这个默认里面就有一个8kb的char数组,readLine方法可以一次读取一行
BufferedReader br=null;
FileReader fr=null;
try {
fr=new FileReader("src/Work06/temp.txt");
br=new BufferedReader(fr);
int readData=0;
while((readData=br.read())!=-1){
System.out.print((char) readData);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
//底层还是构造方法传入的节点流对象自己调用.close方法进行关闭操作的
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

temp.txt

BufferedReaderTest类
package Work4;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferReaderTest {
public static void main(String[] args) {
//缓冲字符输入流,这个默认里面就有一个8kb的char数组,readLine方法可以一次读取一行
BufferedReader br=null;
FileReader fr=null;
try {
fr=new FileReader("src/Work06/temp.txt");
br=new BufferedReader(fr);
char[] chars=new char[8];
int readLen=0;
while((readLen=br.read(chars))!=-1){
System.out.print(new String(chars,0,readLen));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
//底层还是构造方法传入的节点流对象自己调用.close方法进行关闭操作的
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}


package Work4;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferReaderTest {
public static void main(String[] args) {
//缓冲字符输入流,这个默认里面就有一个8kb的char数组,readLine方法可以一次读取一行
BufferedReader br=null;
FileReader fr=null;
try {
fr=new FileReader("src/Work06/temp.txt");
br=new BufferedReader(fr);
String readLen=null;
//存放每次读取的一行字符串
while((readLen=br.readLine())!=null){
System.out.println(readLen);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
//底层还是构造方法传入的节点流对象自己调用.close方法进行关闭操作的
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
