当前位置: 首页 > 知识库问答 >
问题:

使用扫描仪将文件内容放入数组

董畅
2023-03-14

我正在尝试将文件的内容放入数组中。文件内容是正整数和负整数。

这就是我所做的,以确定我应该使数组多大。inFile是我的扫描仪。我能够打印inFile的内容,但它们不会进入数组。我只得到空值。

    int arrayLength = 0;
    while (inFile.hasNextInt()){
        inFile.nextInt();
        arrayLength++;
    }

这就是我试图将文件内容放入数组所做的。

    int[] nums = new int[arrayLength]; //make array according to arrayLength
    inFile.reset();
    //fill array with values from file
    for (int n = 0; n > arrayLength; n++) {
        nums[n] = inFile.nextInt();
    }

谢谢你的帮助。

共有1个答案

牧献
2023-03-14

当您在第一个循环中使用nextInt()时,您正在流上“移动”一个虚拟光标,不能再返回。

假设您有如下输入:

17
-15
13

然后,当您第一次调用nextInt()时,光标从17移动到-15。因此在每个循环中调用nextInt()必然会导致第二个循环中的空值。

您应该尝试使用动态数组或列表(没有固定大小)

 类似资料:
  • 我需要在一种方法中将文件名作为扫描仪的输入,并在所有其他方法中将该扫描仪用作其余代码的文件路径的引用。 我正在学习文件I/o,对于这个项目,我应该以文件名作为输入,计算文件中的行数,并将每行放入一个数组中。 我的问题出现在FileUtils期间。countRecords方法。在FileUtils中返回文件类型后。打开输入文件(openInputFile),然后将数据放入扫描仪(代码中的变量inf和

  • 问题内容: 问题答案: 您可以尝试这样的事情: 除非我误解你,否则这似乎是很基本的东西

  • 我应该在属性文件中添加什么以便它包括。模块文件?

  • 问题内容: 我正在玩Scanner类,以进行学习,并且我使用它来读取非常大的文件(大约60.000行,大约不使用Reader类),并且在大约400行后停止读取。我是否必须在Scanner的构造函数中使用Bufferedreader还是问题?我想知道为什么会这样。谢谢。我的代码是输出所有行的常用代码。 问题答案: 此问题通常在64位计算机上或文件大小大于1-2 GB的文件中更常见,并且与堆空间无关。

  • 问题内容: 我正在尝试让扫描仪在循环中进行输入。一旦用户想要完成操作,他就可以退出此循环。我尝试了许多不同的方法来执行此操作,但始终存在一些问题。这是代码: 上面代码的问题(在我尝试的其他方法上也会发生)是,当用户键入 Y时 ,将跳过名字的第一个输入,并跳转到姓氏。如果用户键入 N, 则循环将正确停止。有人可以解释发生这种情况的原因,以及如何克服使用课堂的问题? ps:执行类似的操作,将导致循环终

  • 我正在尝试通过单行输入检索用户输入:例如,使用扫描仪分隔符为Comma5,6,4,8,9。如何使用这种类型的输入检索任意数量的整数?也就是说,不必询问用户希望输入多少个整数。下面是我一直在使用的代码,但是当我想中断时,不能中断while循环。请注意,我保留System.Out以跟踪程序当前运行的位置。令人困惑的是,我可以以这种格式获得用户输入,但程序停止并再次要求用户输入,然后如果输入是一个整数,