从java中的文件获取输入时出错

从java中的文件获取输入时出错,java,Java,我有一个大小为10^6个元素的输入文件,我正在接受输入 Input File: 100000 //size of the array 2 3 4 (so on as large as 10^6) 5 6 99 代码: 请告诉我哪里我错了基本上,你实际上没有10^6个元素。。。您可能有差不多那么多,但没有那么多…您可以使用.hasNext()中的来测试是否有另一个整数。也许如果你没有另一个整数,你会抛出一个你自己的异常,告诉你更多的信息,比如读了多少个元素,期望读多少个元素。你

我有一个大小为10^6个元素的输入文件,我正在接受输入

    Input File:
  100000 //size of the array
   2 3 4 (so on as large as 10^6) 5 6 99
代码:


请告诉我哪里我错了

基本上,你实际上没有10^6个元素。。。您可能有差不多那么多,但没有那么多…您可以使用.hasNext()中的
来测试是否有另一个整数。也许如果你没有另一个整数,你会抛出一个你自己的异常,告诉你更多的信息,比如读了多少个元素,期望读多少个元素。你调试过它并单步通过了吗。我敢打赌,在输入文件中数组值的第一个大小之后有一个CRLF,因此必须在一行中读取,然后读取每个
nextInt()
。只需检查
5
作为数组大小和
1 2 3 4
作为文件中的值,您将得到
java.util.NoSuchElementException
,这意味着您的文件没有@Jon Skeet已经提到的
5
元素。然后在.hasNextInt()中使用
在中,您可以在某个地方编写代码,检查扫描仪中是否还有一个整数需要存储。这应该可以解决问题。
 Scanner in = new Scanner(new FileReader("Input.txt"));
 int n = in.nextInt();
 int[] p = new int[n];
   for(int j=0;j<n;j++)
     p[j]=in.nextInt();  // line 90
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at jobs.TestClass.main(TestClass.java:90)