MyBufferedReader
生活随笔
收集整理的這篇文章主要介紹了
MyBufferedReader
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 /**
2 需求:自定義一個包含 readLine 方法的 BufferedReader 來模擬一下 BufferedReader
3 */
4 import java.io.FileReader;
5 import java.io.IOException;
6 import java.io.Reader;
7
8 class MyBufferedReader extends Reader {
9 private Reader r;
10
11 MyBufferedReader(Reader r)// 建立構造函數.一開始就要有流
12 {
13 this.r = r;
14 }
15
16 // 可以一次讀一行數據的方法。
17 public String myReadLine() throws IOException {
18 // 定義一個臨時容器。原BufferReader封裝的是字符數組。
19 // 為了演示方便。定義一個StringBuilder容器。因為最終還是要將數據變成字符串。
20 StringBuilder sb = new StringBuilder();
21 int ch = 0;
22 while ((ch = r.read()) != -1) {
23 if (ch == '\r')
24 continue;// 判斷如果是\r的話在運行.判刑下個\n,如果是最后一行了.返回字符串
25 if (ch == '\n')
26 return sb.toString();
27 else
28 sb.append((char) ch);
29 }
30
31 if (sb.length() != 0)
32 return sb.toString();
33 return null;
34 }
35
36 /*
37 * 覆蓋Reader類中的抽象方法。
38 */
39 public int read(char[] cbuf, int off, int len) throws IOException {
40 return r.read(cbuf, off, len);
41 }
42
43 public void close() throws IOException {
44 r.close();
45 }
46
47 public void myClose() throws IOException {
48 r.close();
49 }
50 }
51
52 class MyBufferedReaderDemo {
53 public static void main(String[] args) throws IOException {
54 FileReader fr = new FileReader("buf.txt");
55
56 MyBufferedReader myBuf = new MyBufferedReader(fr);// 自定義的裝飾類
57
58 String line = null;
59
60 while ((line = myBuf.myReadLine()) != null) {
61 System.out.println(line);
62 }
63 myBuf.myClose();// 關閉資源
64 }
65 }
?
轉載于:https://www.cnblogs.com/wtyqer/p/3527716.html
總結
以上是生活随笔為你收集整理的MyBufferedReader的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动机编程游戏
- 下一篇: 送给同事的5个新年计划