关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

实现自己的readline方法

发布时间:2023-06-30 23:28:27

用代码来自己实现BufferedReader中的readline方法:

package ioDemo;  import java.io.FileReader; import java.io.IOException;  class MyBufferedReader{  private FileReader r;   //在对象建立的时候就应该有一个FileReader对象传进来  MyBufferedReader(FileReader r){  this.r = r;  }   //定义自己的readline方法  public String myReadline() throws IOException{   //定义一个临时容器,原BufferReader封装的是字符数组  //为了方便,我们定义一个StringBuilder容器,因为还是最终还是要将数据变成字符串。  StringBuilder sb = new StringBuilder();  int ch = 0;  while((ch=r.read())!=-1) {  //Windows的换行符是\r\n,如果读到\r就不往容器里面添加,如果读到\n就说明这一行结束了,就把容器中的数据变成字符串返回。  if(ch=='\r') {  continue;  }  if(ch=='\n') {  return sb.toString();  }else {  sb.append((char)ch);  }  }   //如果最后一行没有换行符,就不会把这一行返回。所以在这里再加一个判断;  if(sb.length()!=0) {  return sb.toString();  }   return null;   }   //关闭流方法  public void myClose() throws IOException{  r.close();  } }  public class ReadlineTest {   public static void main(String[] args) {  MyBufferedReader mbr = null;  try {  mbr = new MyBufferedReader(new FileReader("abc.txt"));  String line = null;  while((line=mbr.myReadline())!=null) {  System.out.println(line);  }  } catch (IOException e) {  // TODO: handle exception  System.out.println(e.toString());  } finally {  try {  if(mbr!=null) {  mbr.myClose();  }  } catch (IOException e2) {  // TODO: handle exception  System.out.println(e2.toString());  }  }  } }

/template/Home/leiyu/PC/Static