January201705
/**
根據(jù) BufferedReader類中的特有方法 ReadLine()
自己定義一個(gè)方法 模擬 ReadLine()方法
定義一個(gè)容器扭仁,在讀取至 換行符時(shí) 進(jìn)行截?cái)唷?*/
import java.io.*;
public class demo{
public static void main(String[] args)throws IOException{
myBufferedReader mbf=new myBufferedReader(new FileReader("Test.java"));
String s=null;
while((s=mbf.myReadLine())!=null){
System.out.println(s);
}
/* while((s=mbf.myReadLineTwo())!=null){
System.out.println(s);
}*/
// s=mbf.myReadLineTwo();
// System.out.println(s);
}
}
class myBufferedReader{
private FileReader r;
public myBufferedReader(FileReader r){
this.r=r;
}
/* public String myReadLineTwo()throws IOException{
//定義一個(gè)字符數(shù)組许蓖,作為緩沖
char[] buf =new char[1024];
int ch=0;
while((ch=r.read(buf))!=-1){
if(ch=='\r')
continue;
if(ch=='\n')
return String.valueOf(buf);
}
return null;
}*/
public String myReadLine()throws IOException {
//定義一個(gè)臨時(shí)容器。與bufferedReader封裝的是字符數(shù)組
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();
}
}