读取文本文件的问题 - java.lang.StringIndexOutOfBoundsException

时间:2014-01-23 02:44:18

标签: java arrays

我正在尝试从文件内容创建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

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

最后,我提供的代码导致异常。问题与try catch块和变量范围有关。

此处,arr = list.toArray(new String[list.size()]);变量arr包含所有文件行。但是,在此行return arr;中,内容为空;

为此,当我初始化数组并在方法中放置一个简单的return arr时,它可以工作。在这种情况下,我没有任何try catch块。