如下情况会发生你遇到的越界错误:
1.在某次读取后未找到字符串,这时 lastContent=content,lastContent长度为32。
2.接下来的读取后,content中包含要找的字符串。
3.targetIndex = (lastContent + content).indexOf的结果一定大于32
4.再接下来的pr.read时由于targetIndex大于32,大于buf的长度,发生越界
pr=new PushbackReader(new FileReader("d:/PushbackTest.java"),64);
这一有问题,,,书上加载的路径和你运行的路径不一样。。。这个FileReader(String fileName)的构造函数的实参是文件的绝对路径的字符串,,,d:/PushbackTest.java为我在D盘下运行
没仔细看,明显数字越界,你那个buf存得下么