序章:
BufferReader がテキストを読み取るとき、文字データをファイルからバッファーに読み取ります。引き続き read() メソッドを使用すると、バッファーからデータが読み取られ、接続のエンコードと送信のプロセスが削減され、効率が向上します。バッファ データがいっぱいになると、再度書き込まれます。Reader メソッドを使用してファイルを読み取るときは、バイナリまたは 8 進バイトを読み取るため、内容が見えにくいため、テキストに変換する必要があります。 , char変数に加えて、バッファリングされたバッファもあり、受信したデータをバッファに保存し、バッファのデータがいっぱいになったときにバッファがテキストに変換して出力します。
宣言方法:
Reader fr = new FileReader("D:\\javaproduction\\advanced features\\Osmanthus fragrans.txt");//読み取りパスを設定
BufferedReader br = new BufferedReader(fr);//読み取りオブジェクトをバッファに入れる
コードは次のように実装されます。
package com.ytzl.第二章.demo4.io流.two;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.Reader;
public class BufferReaderTest {
public static void main(String[] args) throws Exception{
/*BufferReader在读取文本的时候,会从文件中读取字符数据
* 到缓冲区,如果继续使用read()方法会从缓冲区读取数据,
* 减少了连接编码传输的过程,提高了效率,只有缓冲区数据
* 满了,才会再次进行写入
* */
//优化创建对象的方式
Reader fr = new FileReader("D:\\java制作\\高级特性\\桂花宝典.txt");//设置读取路径
BufferedReader br = new BufferedReader(fr);//读取对象放入缓冲区
//readLine()每次读取一行数据
//String line = br.readLine();
//System.out.println(line);
//循环读取
System.out.println(fr.read());
String line=null;
while ((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
fr.close();
}
}