我正在尝试从文件内容创建Java String []。
代码是:
private String[] arr;
private List<String> list = new ArrayList<String>();
public String[] readfile (String fileName) {
try {
br = new BufferedReader(new FileReader(fileName));
while((str = br.readLine()) != null){
list.add(str);
}
arr = list.toArray(new String[list.size()]);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null){
br.close();
}
} catch (IOException e2) {
e2.printStackTrace();
}
}
return arr;
}
该功能显然有效。实际上,变量arr包含文件的内容。
但是,在此行之后,arr = list.toArray(new String[list.size()]);
该函数不会返回arr
。我得到java.lang.StringIndexOutOfBoundsException: String index out of range: 0
可能是什么问题?
答案 0 :(得分:0)
最后,我提供的代码导致异常。问题与try catch块和变量范围有关。
此处,arr = list.toArray(new String[list.size()]);
变量arr
包含所有文件行。但是,在此行return arr;
中,内容为空;
为此,当我初始化数组并在方法中放置一个简单的return arr
时,它可以工作。在这种情况下,我没有任何try catch块。