BufferReader:字元讀取流緩沖去,在BufferReader中有一個readLine()方法,表示每次讀取一行資料。
readLine()方法傳回包含該行内容的字元串,不包含任何行終止符,如果已到達流末尾,則傳回 null,即傳回的資料為回車符自己的資料,不包括回車符。
readLine()方法的原理:
readLine()方法無論讀取一行資料還是讀取多個字元,最終調用的方法還是讀取字元流(Reader)中的read()方法,一次讀取一個字元。
import java.io.FileReader;
import java.io.IOException;
public class MyBufferedReader {
private FileReader fr = null;
public MyBufferedReader(FileReader fr) {
this.fr = fr;
}
public String readLine() throws IOException {
// 定義一個臨時容器,用于存放讀取的資料
StringBuilder sb = new StringBuilder();
// 定義一個字元,用于判斷是否讀取到檔案末尾
int ch = 0;
while ((ch = fr.read()) != -1) {
if (ch == ‘\r’) {
continue;
}
if (ch == ‘\n’) {
return sb.toString();
}else{
sb.append((char)ch);
}
}
//判斷緩沖區是否還有資料,要是有資料就輸出,(這種情況是避免最後一行資料沒有回車符造成資料沒有讀出的問題)
if(sb.length() !=0){
return sb.toString();
}
return null;
}
//定義關閉方法
public void close() throws IOException{
if(fr != null){
fr.close();
}
}
}
————————————————
版權聲明:本文為CSDN部落客「tuanjie108」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/peituanjie/article/details/17421773