我正在尝试从文件中读取并将文件中的每一行添加到我的数组“标题”中,但不断收到错误:
线程“main”中的异常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++;
}
提前谢谢!
答案 0 :(得分: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);
}
答案 1 :(得分:0)
数组不像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 ;