不使用扫描仪将文本数据存储到java数组中

时间:2014-11-17 00:46:34

标签: java arrays sorting file-io

我的代码只是打印出我在其他程序中创建的列表中的最后一个数字。 我需要帮助将数据存储到数组中,以便我可以对其进行排序。 编辑:我需要从' numbers.txt'的文件中获取数据。并将其存储到数组中。

public static void main(String[] args) throws Exception {
    int numberArray = 0;
    int[] list = new int[16];

    File numbers = new File("numbers.txt");
    try (Scanner getText = new Scanner(numbers)) {
        while (getText.hasNext()) {
            numberArray = getText.nextInt();
            list[0] = numberArray;
        }
        getText.close();
    }
    System.out.println(numberArray);
    int sum = 0;
    for (int i = 0; i < list.length; i++) {
        sum = sum + list[i];
    }
    System.out.println(list);
}
}

1 个答案:

答案 0 :(得分:0)

代码中的更正。

1。)while while循环list[0] = numberArray;将继续在同一index 0添加元素,因此lat值将被覆盖。因此,list[i] = numberArray;之类的内容将起作用,而increement i内的while loop也会起作用。在这里照顾ArrayIndexOutOfBound Exception

public static void main(String[] args) throws Exception {
    int numberArray = 0;
    int[] list = new int[16];

    File numbers = new File("numbers.txt");
    int i =0;

// Check for arrayIndexOutofBound Exception. SInce size is defined as 16

    try (Scanner getText = new Scanner(numbers)) {
        while (getText.hasNext()) {
            numberArray = getText.nextInt();
            list[i] = numberArray;
             i++;
        }
        getText.close();
    }
    System.out.println(numberArray);
    int sum = 0;
    for (int i = 0; i < list.length; i++) {
        sum = sum + list[i];
    }
    System.out.println(list);
}
}