- import java.io.IOException;
- import java.io.Reader;
- /*自定义的缓冲区
- * 首先需要有一个数组容器,用read方法将源中的一批数据获取
- * 再从数组容器中一个一个的取出,当容器中的数据取完后,再从源中取一次
- */
- public class MyBufferReader {
- // 首先需要一个数组容器
- char[] chs = new char[3];
- // 其次,缓冲区建立时,需要有一个关联的源
- private Reader fr;
- int count = 0;
- int pos = 0;
- MyBufferReader(Reader fr) {
- this.fr = fr;
- }
- public int myRead() throws IOException {
- if (count == 0){
- count = fr.read(chs);
- pos=0;
- }
- if(count<0)
- return -1;
- char ch=chs[pos];
- pos++;
- count--;
- return ch;
- }
- public String myReadLine() throws IOException{
- int ch=0;
- StringBuilder sb=new StringBuilder();
- while((ch=myRead())!=-1){
- if(ch=='\r')
- continue;
- if(ch=='\n')
- return sb.toString();
- sb.append((char)ch);
- }
- // if((sb.toString())!=null){
- // return sb.toString();
- // }
- return null;
- }
- public void myClose() throws IOException{
- fr.close();
- }
- }
复制代码 |
|