【发布时间】:2014-04-03 14:25:25
【问题描述】:
在这里,我正在尝试阅读包含单词和相应缩写的文档。例如。
one,1
two,2
easy,ez
每一行都是分开的,单词和缩写之间用逗号隔开。
当我希望缓冲阅读器使用
继续阅读行时while ((line = br.readLine()) != null)
不会的。它只会读取第一行。这意味着它将显示一个的缩写,即 1。但如果我输入另一个值,比如 2,我会收到此错误消息。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.charAt(String.java:658)
at shortener.NewClass.Short(NewClass.java:41)
at shortener.NewClass.main(NewClass.java:26)
Java Result:
这是代码
public static String Short(String input) {
try {
FileReader fr = new FileReader("abbreviations.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
for(int i = 0; i <= line.length(); i++) {
if(line.charAt(i) == ','){
String strOrig = line.substring(0, i);
if(strOrig.equals(input)) {
String strAbv = line.substring(line.length()-1);
return strAbv;
}
}
}
}
br.close();
} catch (IOException e) {
out.println("File Not found");
}
return null;
}
【问题讨论】:
标签: java bufferedreader