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个新年计划