天天看點

Java-BufferReader中的readLine()方法

BufferReader:字元讀取流緩沖去,在BufferReader中有一個readLine()方法,表示每次讀取一行資料。

readLine()方法傳回包含該行内容的字元串,不包含任何行終止符,如果已到達流末尾,則傳回 null,即傳回的資料為回車符自己的資料,不包括回車符。

readLine()方法的原理:

readLine()方法無論讀取一行資料還是讀取多個字元,最終調用的方法還是讀取字元流(Reader)中的read()方法,一次讀取一個字元。

Java-BufferReader中的readLine()方法

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