如何使用文件中的String输入填充数组?

时间:2015-02-16 04:09:47

标签: java arrays

假设我在testgrades.txt中有4个等级我不知道为什么这不会起作用。

public static void main(String[] args) throws FileNotFoundException {


    File file1= new File("testgrades.txt");
    int cnt = 4;
int[] grades = new int[cnt];
String line1;
for (int i=0; i<cnt; i++) {
    Scanner inputFile2 = new Scanner(file1);
    line1 = inputFile2.nextLine();
    int grades2 = Integer.parseInt(line1);
    grades[i] = grades2;
}


    System.out.print(grades);

2 个答案:

答案 0 :(得分:0)

你可以这样做

public static void main(String[] args) throws FileNotFoundException {
            // TODO code application logic here
            File file= new File("testgrades.txt");
            Scanner scan = new Scanner(file);
            int arr[] = new int[100];
            int i = 0;
            do{
                String line1 = scan.nextLine();
                int grades2 = Integer.parseInt(line1);
                arr[i++] = grades2;
            }while(scan.hasNextLine());

            for(int j = 0; j < i; j++){
                System.out.println(arr[j]);
            }
        }

答案 1 :(得分:0)

首先,您应该注意java中的数组包含相同类型的固定大小的元素。 您可以通过以下两种方式之一初始化它们(不太确定是否有其他方法)。

//First method
int[] anArray = new int[10];
// Second method
int[] anArray = {1,2,3,4,5,6,7,8,9,10};

在任何一种情况下,该数组的大小为10个元素。由于您从文本文件中获取数据,我建议您将行数计入变量并使用该值初始化数组。然后您可以使用循环以这种方式填充值:

// Assuming you have cnt as your total count of grades.
int[] grades = new int[cnt];
String line1;
for (int 1=0; i<cnt; i++) {
    line1 = inputFile2.nextLine();
    int grades2 = Integer.parseInt(line1);
    grades[i] = grades2;
}

这是我的想法,所以如果你遇到任何问题请告诉我。