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();
}
}
自定义缓冲区
最新推荐文章于 2021-03-10 11:51:02 发布