将文件中的值存储到数组

时间:2018-04-08 00:16:13

标签: java arrays file

我想将.txt文档中的值存储到数组中。我已经尝试了这个solutions,但没有一个工作过。我想将值存储在数组中,因为我将在未来的方法中使用该数组来获得平均值,总和等。

这就是我提出的:

import java.util.Scanner;
import java.io.*;
public class example{
public static void main(String[] args)throws IOException{

Scanner input = new Scanner(new File("integers.txt"));

int counter = 0;
while(input.hasNext()){

  int numbers = input.nextInt();
  counter++;
}
int[] array = new int[counter];
for(int i =0; i < array.length; i++){
  System.out.println(array[i]);
    }
  }
}

我的输出是: 0 0 0 0 0 0 0 0 0 0 0 0 0

它应该是文件上的数字:

1 2 3 4 5 6 7 8 9 10 11 12 13

任何帮助将不胜感激。 提前谢谢。

3 个答案:

答案 0 :(得分:0)

在打印出阵列之前,您需要将文件实际读入数组:

public static void main(String[] args) throws FileNotFoundException {
    Scanner input = new Scanner(new File("integers.txt"));

    int counter = 0;
    while (input.hasNext()) {
        counter++;
    }
    int[] array = new int[counter];
    for (int i = 0; i < array.length; i++) {
        array[i] = input.nextInt();
        System.out.println(array[i]);
    }
}

答案 1 :(得分:0)

最简单的方法是将其存储在列表中。

public static void main(String[] args) throws FileNotFoundException {
    Scanner input = new Scanner(new File("integers.txt"));

    List<Integer> numbers = new ArrayList();

    while (input.hasNextInt()) {
        numbers.add(input.nextInt());
    }

    numbers.forEach(System.out::println);
}

sum方法可以是这样的:

private static int sum(List<Integer> numbers) {
    int total = 0;
    for (int number : numbers) {
        total += number;
    }
    return total;
}

干杯伴侣。

答案 2 :(得分:0)

使用Java Stream然后转换为数组是简单的2行代码。 1行打印结果。

    public static void main(String[] args)  {
         Stream<String> streamString = Files.lines(Paths.get("integers.txt"));
         int[] intArray = streamString.mapToInt(Integer::parseInt).toArray();
         Arrays.stream(intArray).forEach(System.out::println);
}