Java 将文件中的数字存储到数组中

Java 将文件中的数字存储到数组中,java,arrays,Java,Arrays,我有一个名为“input.txt”的文件,上面有下面的数字。我想读取此文件并将其放入数组。第一个整数-10表示数组中索引或元素的数量,因此为10个点。下面的代码是我到目前为止所做的,我只是不知道如何从第一行读取input.txt 10 3 4 5 6 4 4 5 6 3 此数组的大小将是文件中的第一个数字 static void display(int[] numArray) { System.out.pr

我有一个名为“input.txt”的文件,上面有下面的数字。我想读取此文件并将其放入数组。第一个整数-10表示数组中索引或元素的数量,因此为10个点。下面的代码是我到目前为止所做的,我只是不知道如何从第一行读取input.txt

    10
    3
    4
    5
    6
    4
    4
    5
    6
    3
此数组的大小将是文件中的第一个数字

static void display(int[] numArray) {
    System.out.println("Array contents: ");
    for (int i = 0; i < numArray.length; i++) {
        System.out.print(numArray[i] + " ");
    }
    System.out.println();
}

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    int[] numberArray = new int[10];

    System.out.println("Enter the name of your file (including file extension): ");
    String filename = input.next();

    int count = 0;

    try {

        Scanner in = new Scanner(new File(filename));
        int result = in.nextInt();

        while (in.hasNextInt()&& count < 10) {
            numberArray[count] = result;
            count = count + 1;
            result = in.nextInt();
        }
    } catch (FileNotFoundException e) {
        System.out.println("That file was not found. Program terminating...");
        e.printStackTrace();
    }

    display(numberArray);

}
静态无效显示(int[]numArray){
System.out.println(“数组内容:”);
for(int i=0;i
类似的方法应该可以工作(未经测试)。请注意,首先是如何获取大小的,基于该大小创建的数组,然后读取文件的其余部分

static void display(int[] numArray) {
    System.out.println("Array contents: ");
    for (int i = 0; i < numArray.length; i++) {
        System.out.print(numArray[i] + " ");
    }
    System.out.println();
}

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter the name of your file (including file extension): ");
    String filename = input.next();

    int count = 0;
    int[] numberArray;
    try {
        Scanner in = new Scanner(new File(filename));
        int size= in.nextInt();
        numberArray = new int[size];
        int result;
        while (in.hasNextInt()&& count < size) {
            numberArray[count] = result;
            count = count + 1;
            result = in.nextInt();
        }
    } catch (FileNotFoundException e) {
         System.out.println("That file was not found. Program terminating...");
        e.printStackTrace();
    }
    display(numberArray);
}
静态无效显示(int[]numArray){
System.out.println(“数组内容:”);
for(int i=0;i
您需要创建第一行大小的数组,如果需要,请放入数组。您可以尝试以下方法:

如果您使用的是Java 7或更高版本,您可以尝试以下方法:

public static void main(String[] args) {
    try (final Scanner input = new Scanner(System.in)) {
        final int[] numberArray = new int[10];

        System.out.println("Enter the name of your file (including file extension): ");
        final String filename = input.next();

        try (final Scanner in = new Scanner(new File(filename))) {
            final int count = in.nextInt();
            for (int i = 0; in.hasNextInt() && i < count; i++) {
                numberArray[i] = in.nextInt();
            }
            display(numberArray);
        } catch (final FileNotFoundException e) {
            System.out.println("That file was not found. Program terminating...");
            e.printStackTrace();
        }
    }
}
publicstaticvoidmain(字符串[]args){
try(最终扫描仪输入=新扫描仪(System.in)){
最终整数[]numberArray=新整数[10];
System.out.println(“输入文件名(包括文件扩展名):”;
最终字符串文件名=input.next();
尝试(中的最终扫描仪=新扫描仪(新文件(文件名))){
最终整数计数=in.nextInt();
对于(int i=0;in.hasNextInt()&&i
如果您使用的是java 7之前的版本,请尝试以下方法:

public static void main(String[] args) {
    try (final Scanner input = new Scanner(System.in)) {

        System.out.println("Enter the name of your file (including file extension): ");
        final String filename = input.next();

        int[] numberArray = null;
        try (final Scanner in = new Scanner(new File(filename))) {
            final int count = in.nextInt();

            numberArray = new int[count];

            for (int i = 0; in.hasNextInt() && i < count; i++) {
                numberArray[i] = in.nextInt();
            }
            display(numberArray);
        } catch (final FileNotFoundException e) {
            System.out.println("That file was not found. Program terminating...");
            e.printStackTrace();
        }
    }
}
publicstaticvoidmain(字符串[]args){
try(最终扫描仪输入=新扫描仪(System.in)){
System.out.println(“输入文件名(包括文件扩展名):”;
最终字符串文件名=input.next();
int[]numberArray=null;
尝试(中的最终扫描仪=新扫描仪(新文件(文件名))){
最终整数计数=in.nextInt();
numberArray=新整数[计数];
对于(int i=0;in.hasNextInt()&&i
如果要将第一行添加到数组中,则put
numberArray[0]=count;

以下
numberArray=newint[count]1

对步骤进行编码>并初始化。您需要将其放入一个while循环中。。。int result需要在while循环中。读取完文件后,应关闭扫描仪。最好和最简单的方法是用一个语句。谢谢你的帮助,但它仍然不起作用,我在displayArray(Numaray)找不到符号;这是因为数组应该在try块之前定义,然后在获得大小后初始化。更新了答案