如何将文件中的数字存储到数组中

时间:2013-12-09 05:40:51

标签: java arrays file

我无法弄清楚这有什么问题。 我必须读入一个文件(该文件有数字)并将数字存储到一个数组中。

这是文件:

http://dl.dropboxusercontent.com/u/31878359/courses/15/scores1.txt

我理解第一个数字为零,我无法更改文件中数字或数字的顺序。

文件
0
10个
20个
30个
40个
50个
60个
70个
80个
90个

这是我的代码:

import java.util.*;
import java.io.*;

public class Check {

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

    public static void process(Scanner input) {
        int[] numbers = new int [input.nextInt()];
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = input.nextInt();
        }
        Arrays.sort(numbers);
        System.out.print("numbers: "+Arrays.toString(numbers));   
   }
}

这是输出:

数字:[]

我假设这是一个声明数组的问题。

4 个答案:

答案 0 :(得分:5)

问题是,您的第一个文件值是0。因此数组大小为0。更改您的第一个值,以便您可以将其余值添加到数组中。

答案 1 :(得分:2)

文件中的第一个值为0.

int[] numbers = new int [input.nextInt()]; // this input.nextInt() gets the first line

你正在制作一个大小为0的数组

由于文件中有10个数字。初始化大小为10;

int[] numbers = new int [10];

答案 2 :(得分:1)

public static void process(Scanner input) {
        List<Integer> number = new ArrayList<Integer>();
        while(input.hasNext()) {
            number.add(input.nextInt());//i hope all ints are there in the file
        }
        int[] numbers = number.toArray(new int[number.size])
        //then do sort and all   
   }

希望这会有所帮助

答案 3 :(得分:0)

我的建议是使用ArrayList

public static void process(Scanner input) {
    List list = new ArrayList();
    while(input.hasNextInt()){
        list.add(input.nextInt());
    }
    Collections.sort(list);
    System.out.print("numbers: " + list);   
}