模拟字符缓冲读入流:BufferedReader
Posted yumengfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟字符缓冲读入流:BufferedReader相关的知识,希望对你有一定的参考价值。
/* * 模拟字符缓冲读入流:BufferedReader * * 分析: * 1.要属于流的体系 * 2.要有一个Reader类型的成员变量 * 3.要有一个带参数的构造方法接收外部传入的流对象 * 4.模拟readLine(),实现读一行的功能 * 5.关闭流 */ import java.io.FileReader; import java.io.IOException; import java.io.Reader; //1.要属于流的体系 class MyBufferedReader extends Reader //2.要有一个Reader类型的成员变量 Reader reader; //3.要有一个带参数的构造方法接收外部传入的流对象 public MyBufferedReader(Reader reader) this.reader = reader; //4.模拟readLine(),实现读一行的功能 public String readLine() throws IOException //a.创建一个临时的可变字符串,用于装当前行的字符 StringBuffer stringBuffer = new StringBuffer(); //b.使用read()方法读 int num = 0; while ((num = this.reader.read()) != -1) if (num == ‘\r‘) continue; else if (num == ‘\n‘) return stringBuffer.toString(); else stringBuffer.append((char)num); //当文本为空时 if (stringBuffer.length() == 0) return null; //当文本只有一行,没有换行符 return stringBuffer.toString(); //增加效率的代码 //5.关闭流 public void close() throws IOException //关闭自己 this.reader.close(); @Override public int read(char[] cbuf, int off, int len) throws IOException // TODO Auto-generated method stub return 0; public class Demo11 public static void main(String[] args) throws IOException MyBufferedReader myBufferedReader = new MyBufferedReader(new FileReader("text3.txt")); String data = null; while ((data = myBufferedReader.readLine()) != null) System.out.print(data); System.out.println(); myBufferedReader.close();
以上是关于模拟字符缓冲读入流:BufferedReader的主要内容,如果未能解决你的问题,请参考以下文章
JAVA-初步认识-I/O流(字符流-缓冲区-BufferedReader-ReadLine方法原理)
BufferInputStreamBufferOutputStreamBufferedReaderBufferedWriterJava代码使用BufferedReader和BufferedWr