1

我正在尝试从文件中读取并将文件中的每一行添加到我的数组“Titles”中,但不断收到错误消息:

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:0

有任何想法吗?由于行读取,我收到错误:

      Titles[lineNum] = m_line;                 

我的代码:

String[] Titles={};
int lineNum;            
m_fileReader = new BufferedReader(new FileReader("random_nouns.txt"));
m_line = m_fileReader.readLine();           
while (m_line != null)              
{       
        Titles[lineNum] = m_line;               
        m_line = m_fileReader.readLine();               
        lineNum++;              
}

先感谢您!

4

2 回答 2

0

数组索引从 0 开始。如果数组的长度为 N,则最后一个索引将为 N-1。当前您的数组的长度为零,并且您正在尝试访问索引 0 处的元素(确实存在)。

String[] Titles={};//length zero

在你的while循环中

 Titles[lineNum] = m_line;  //trying to access element at 0 index which doesnt exist.

我建议您在您的情况下使用ArrayList而不是 Array 。因为 ArrayList 是动态的(你不必为它指定大小)

     List<String> titles = new ArrayList<String>();

       while (m_line != null)              
      {       
        titles.add(m_line);               
       }
于 2012-11-05T00:19:37.203 回答
0

Array 不像 ArrayList 那样可增长。在字符串数组中添加元素之前,您需要指定String[]

String titles[] = new String[total_lines] ;

或者你可以简单地添加每一行ArrayList然后最后转换成一个像这样的数组

int totalLineNumbers;
ArrayList<String> list = new ArrayList();            
m_fileReader = new BufferedReader(new FileReader("random_nouns.txt"));                  m_line = m_fileReader.readLine();           
while (m_line != null)              
{       
        list.add(m_fileReader.readLine());

}
String titles[] = (String[]) list.toArray();
totalLineNumbers = titles.length ;
于 2012-11-05T00:19:49.030 回答