方法一:利用PushbackReader,默认有个长度为1的缓冲区,创建对象时需要指出缓冲区的大小。
public static void function1(File f)throws IOException
{
try(PushbackReader pr = new PushbackReader(new FileReader(f), 64))
{
char[] cbuf = new char[32];
String lastContent = "";
String content = "";
int hasRead = 0;
while((hasRead = pr.read(cbuf)) > 0)
{
content = new String(cbuf, 0, hasRead);
int target = (lastContent + content).indexOf("new PushbackReader");
if(target > 0)
{
pr.unread((lastContent + content).toCharArray());
if(target > 32)
{
cbuf = new char[target];
pr.read(cbuf, 0, target);
System.out.println(new String(cbuf, 0, target));
break;
}
}
else
{
System.out.print(lastContent);
lastContent = content;
}
}
}
}
方法二:利用BufferedReader,这个类有一个readline方法,可以一行一行读取文本,这个方法相对简单。
public static void function2(File f)throws IOException
{
try(BufferedReader br = new BufferedReader(new FileReader(f)))
{
String line = "";
int target = 0;
while((line = br.readLine())!=null)
{
if((target = line.indexOf("new BufferedReader") )> 0)
{
System.out.println(line.substring(0, target));
break;
}
else
{
System.out.println(line);
}
}
}
}