我试图将一个txt文件读入一个数组,但得到一个OutOfBoundsException(0)

时间:2015-03-10 16:25:41

标签: java arrays indexoutofboundsexception filereader bluej

public static double [] loadGravityData( ) throws IOException
{
  File fileName = new File("gravity1.txt");
  Scanner inFile = new Scanner(fileName);

  double [] gravityData = {};
  while(inFile.hasNext())
   {    

   for(int i = 0; i <= gravityData.length; i++)
    {
     gravityData[i] = inFile.nextDouble();

    }

   }  
   inFile.close();

return gravityData;
}

i部分的gravityData是返回异常的内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您应该将数组初始化为您希望阅读的项目数量,并更改

for(int i = 0; i <= gravityData.length; i++)
...

for(int i = 0; i < gravityData.length; i++)
...

这是因为长度 n 的数组中的元素位于 0,1,...,n-1

如果算上它们就可以说实际上有n个元素。

修改,感谢Trengot

如果您不知道预先阅读了多少项,我建议您查看ArrayList,这是一种通用的动态数组类型

答案 1 :(得分:0)

你在哪里分配数组? 在Java中,数组具有固定长度,并且不会自动扩展。在您的情况下,您应该使用ArrayList。

此外,您应该将&lt; =更改为&lt;