畢向東_Java根底視頻教程第19天_IO流(04~06)。本站提示廣大學習愛好者:(畢向東_Java根底視頻教程第19天_IO流(04~06))文章只能為提供參考,不一定能成為您想要的結果。以下是畢向東_Java根底視頻教程第19天_IO流(04~06)正文
import java.io.FileReader;
import java.io.IOException;
/*
明白了BufferedReader類中特無方法readLine的原理後,可以自定義一個類中包括一個功用和readLine分歧的辦法,來模仿一下BufferedReader
*/
public class MyBufferedReader {
private FileReader r;
public MyBufferedReader(FileReader r) {
this.r = r;
}
//可以一次讀一行數據的辦法
public String myReadLine() throws IOException {
//定義一個暫時容器。原BufferedReader封裝的是字符數組。為了演示方便,定義StringBuilder容器,最終前往字符串。
StringBuilder sb = new StringBuilder();
int ch;
while ((ch = r.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 myClose() throws IOException {
r.close();
}
}
class MyBufferedReaderDemo {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("buf.txt");
MyBufferedReader myBuf = new MyBufferedReader(fr);
String line;
while ((line = myBuf.myReadLine()) != null) {
System.out.println(line);
}
myBuf.myClose();
}
}
第19天-06-IO流(裝飾設計形式)