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

从文件的扫描器到数组

汝才良
2023-03-14

我想为这个代码寻求一些帮助。我没有问题读取一个文件本身和使用它作为扫描仪。我可以很容易地数出文件的双倍数。作为一个例子,这些是txt文件的前五个double。(这些数字应该是垂直列出的,但我几乎不怀疑这会有所不同)

 Scanner in = new Scanner(new File("numbers.txt"));

    //This is for finding out the size of the array.
    int nums = 0;
    while(in.hasNextDouble() == true){
        nums++;
        in.nextDouble();            
    }

    double[] list = new double[nums];

    try{
        for (int i = 0; i < list.length; i++){
            list[i] = in.nextDouble();
        }
    }catch(NoSuchElementException e){
        System.out.print(e.getMessage());
    }

这段代码总体上只是打印0.0的“num”数量,而不是将实际数字本身相加。请帮忙,谢谢。

共有1个答案

羊新翰
2023-03-14

问题是,在将数据添加到数组之前,您正在读取所有数据,因此当您执行添加操作时,没有数据可读取。

几种不同的选择:

Scanner in = new Scanner(new File("numbers.txt"));
int nums = 0;
double[] list = new double[5];
while(in.hasNextDouble()){
    list[nums] = in.nextDouble();
    nums++;            
}

尝试更类似于上面的方法(对于固定数量的数据),在将它们添加到数组之前,您正在读取所有的doubles...您不能像正在做的那样读取所有的数据,只是为了查看数组需要多大...除非您制作一个新的扫描器来重新读取文件

注意:上面的代码假设您的文件总是只有5个双打,如果不是这样的话,也许您希望使用arraylist以便在添加未知数量的双打时可以扩展列表(请参见下面使用arraylist的示例)

Scanner in = new Scanner(new File("numbers.txt"));
ArrayList<Double> arrayList = new ArrayList<Double>();
while(in.hasNextDouble()){
    arrayList.add(in.nextDouble());            
}

或者...第一个while循环完成后,只需再次添加下面的行,您的原始代码就可以工作了。

in.close();
in = new Scanner(new File("numbers.txt"));
 类似资料:
  • 问题内容: 试图使用像ZXing,ZBar和它们的fork之类的几个库,但是找不到从相机而不是从文件扫描条形码的方法。 有人可以指出我正确的方向吗?最好是我正在研究ZXing:如何从文件(而不是相机)扫描图像。 请。 问题答案: 最后,我找到了解决方案。代码是(源自此处): Gradle引用为: 用法:

  • 映射器XML文件可以从类路径外部(即从文件系统位置)读取 映射器XML文件可以“重新扫描”自应用程序启动以来对已定义查询所做的更改 谢谢你的任何建议

  • 问题内容: 我要分割以下数据。 获取每个值: 1 167 2 ‘LT2A’ 45 ‘每周’ ‘1,2,3,4,5,6,7,8,9,10,11,12,13’ 我使用的扫描仪类来做到这一点,用 , 作为分隔符。但由于最后一个字符串,我遇到了问题。 因此,我想就如何拆分这些数据提出一些建议。 我也尝试过使用’作为分隔符,但字符串包含不带’的数据。 这个问题是非常适合我的需求的,但是如果有人可以给我一些建

  • 我有一个txt文件,我正试图用扫描仪类读取它。 我正在使用一个double for循环来读取文件,并在其上读取到一个2D数组。 该文件如下所示: 3 3。R#。.#。.# 第一行分别是2D数组的长度和宽度。 3 3 1 0 1 1 1 0 0 1 我在这里使用的方法如下所示: 我希望这与使用char而不是int时的工作方式相同。

  • 问题内容: 我正在用Java写一个简单的程序,它需要从文本文件中读取数据。但是,我在计算行数时遇到了麻烦。对于一个简单的Google搜索来说,这个问题似乎已经足够普遍了,但是我什至没有在搜索正确的东西。 我正在学习的教科书建议要计算文本文件中的行数,您应该执行以下操作: 在我看来,这是问题所在。我认为无限运行。我在代码中使用的数据文件肯定具有有限数量的数据行。 我该怎么办? 问题答案: 第一次调用

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