自己编写BufferedReader中的readLine方法

import java.io.*;
/*
readLine方法的原理是将除回车符以外的字符全部存储到一个字符数组中(本例中用StringBuilder代替),等到读完一行后将其返回
自己编写一个BufferedReader对象中的readLine方法
*/
class MyReaderLine{
 private FileReader r;
 MyReaderLine(FileReader r){
  this.r=r;
 }
 public String myReaderLine() throws IOException{
  //StringBuilder用于暂时存储read方法读取的一个一个的字符,等到读完一行之后将其返回
  StringBuilder sb=new StringBuilder();
  int ch=0;
  while((ch=r.read())!=-1){
   //遇到回车符之后继续读取
   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();
 }
 
}
class demo{
 public static void main(String args[]) throws IOException{
  //实验前先建立一个文档用于读取其中的字符串
  FileReader fr=new FileReader("123.txt");
  MyReaderLine mr=new MyReaderLine(fr);
  String line=null;
  while((line=mr.myReaderLine())!=null){
   System.out.println(line);
  }
  mr.myClose();
 }
}

你可能感兴趣的:(自己编写BufferedReader中的readLine方法)