疯了!和书上一模一样的Java代码,偏偏运行出错!!高手看看

2025-06-21 15:40:03
推荐回答(3个)
回答1:

如下情况会发生你遇到的越界错误:
1.在某次读取后未找到字符串,这时 lastContent=content,lastContent长度为32。
2.接下来的读取后,content中包含要找的字符串。
3.targetIndex = (lastContent + content).indexOf的结果一定大于32
4.再接下来的pr.read时由于targetIndex大于32,大于buf的长度,发生越界

回答2:

pr=new PushbackReader(new FileReader("d:/PushbackTest.java"),64);
这一有问题,,,书上加载的路径和你运行的路径不一样。。。这个FileReader(String fileName)的构造函数的实参是文件的绝对路径的字符串,,,d:/PushbackTest.java为我在D盘下运行

回答3:

没仔细看,明显数字越界,你那个buf存得下么