栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于自定义BufferedReader中的read和readLine方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于自定义BufferedReader中的read和readLine方法

实例如下所示:

package day0208;
 
import java.io.FileReader;
import java.io.IOException;
 

public class MyBufferReader {
    private FileReader r;
    MyBufferReader(FileReader r){
this.r=r;
    }
    //定义一个数组作为缓冲区
    private char[] buf=new char[1024];
    //定义个指针用于操作这个数组的元素,当操作到最后一个元素后,指针应该归零
    private int pos=0;
    //定义一个计数器,用于记录缓冲区中的数据个数,当该数据减到0,就从源中继续获取数据到缓冲区中。
    private int count =0;
    public int myRead() throws IOException{//自定义read方法
if(count==0){//如果缓冲区中没有数据,则从源中获取一批数据到缓冲区
    count=r.read(buf);
    pos=0;
}
if(count<0){
    return -1;
}
char ch=buf[pos++];//一次从缓冲区获取一个字符
count--;
return ch;
    }
    public String myReadLine() throws IOException{//自定义readLine犯法
StringBuilder sb=new StringBuilder();
int ch=0;
while((ch=myRead())!=-1){//只要还有数据就进行读取
    if(ch=='n')//java换行符,停止读取,将已经读取到的数据输出返回
return sb.toString();
    if(ch=='r')
continue;//window下的换行符,不读也不换行,继续读取后面的字符
    sb.append((char)ch);//正常情况下,不断进行读取
}
if(sb.length()!=0)//如果文档中中有字符,就返回读取到的数据
    return sb.toString();
return null;//如果是空文档,就返回空
    }
    public void myClose() throws IOException{
r.close();//关闭流资源
    }
}

这样就Ok了,可以进行检测

package day0208;
 
import java.io.FileReader;
import java.io.IOException;
 
public class MyDemo {
  public static void main(String[] args) throws IOException {
    FileReader fw=new FileReader("C:\demo2.txt");
    MyBufferReader br=new MyBufferReader(fw);
    String line1=null;
    while((line1=br.myReadLine())!=null){
      System.out.println(line1);
    }
//   int num=0;
//   while((num=br.myRead())!=-1){
//     System.out.print((char)num);
//   }
    br.myClose();
  }
}

两种检测方法都可以。

以上这篇基于自定义BufferedReader中的read和readLine方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号