???????????????????
??????????????е??????й???????????????????????ж????????????е???????????????????????????????????
????????????????????????????????????????ε??????????????????????????????
???????????????????????????????д??MyBufferedReader????????myReadLine??????IO??????BufferedReader????????????????
/*
??????????MyBufferedReader
*/
importjava.io.*;
classMyBufferedReader
{
privateFileReaderfr;
MyBufferedReader(FileReaderfr)
{
this.fr=fr;
}
publicStringmyReadLine()throwsIOException
{
StringBuildersb=newStringBuilder();
intch;
while((ch=fr.read())!=-1)
{
if(ch==' ')
continue;
elseif(ch==' ')
returnsb.toString();
else
sb.append((char)ch);
}
if(sb.length()!=0)
returnsb.toString();
returnnull;
}
publicvoidmyClose()throwsIOException
{
fr.close();
}
}
classMyBufferedReaderDemo
{
publicstaticvoidmain(String[]args)throwsIOException
{
FileReaderfr=newFileReader("test.txt");
MyBufferedReaderbr=newMyBufferedReader(fr);
Stringline=null;
while((line=br.myReadLine())!=null)
{
System.out.println(line);
}
br.myClose();
}
}
??????????κ??е?????
????????????????????????????????????????????????????????????
??????????????????ж????????????????ж???????????????????????????????????????????????
????????????????????
?????????????
MyReaderMyReader
|--MyTextReader|--MyTextReader
|--MyBufferedTextReader|--MyMediaReader
|--MyMediaReader|--MyBufferedReader
|--MyBufferedMediaReader
?????????????Щ???????У?????????????????????????????????????????????????????????
??????IO???У????????LineNumberReader???????BufferedReader???????????й????readLine????????FileReader????????????????????????е??????????????????????????????????setLineNumber()??getLineNumber()??????