Java从文件方法writeToFile排序数据

Java从文件方法writeToFile排序数据,java,Java,我必须写一个方法将数据写入文件。它必须将一个整数数组作为参数并将其写入文件,但我在以下几行中遇到了一个错误: Integer[] x = val.toArray(new Integer[val.size(25)]); if (x < 0) break; public static void writeToFile (String filename, int[] x) throws IOException { PrintWriter outputWriter = new Print

我必须写一个方法将数据写入文件。它必须将一个整数数组作为参数并将其写入文件,但我在以下几行中遇到了一个错误:

Integer[] x = val.toArray(new Integer[val.size(25)]);
if (x < 0) break;

public static void writeToFile (String filename, int[] x) throws IOException {
    PrintWriter outputWriter = new PrintWriter("integers.txt");
    System.out.println("Please enter 25 scores.");
    System.out.println("You must hit enter after you enter each score.");
    Scanner sc = new Scanner(System.in);
    int score = 0;
    while (score < 25) {
        int val = sc.nextInt();
        Integer[] x = val.toArray(new Integer[val.size(25)]);
        if (x < 0) break;
        outputWriter.println(x);
        score++; }
    outputWriter.flush();
    outputWriter.close();
}
Integer[]x=val.toArray(新整数[val.size(25)]);
如果(x<0)断裂;
公共静态void writeToFile(字符串文件名,int[]x)引发IOException{
PrintWriter outputWriter=新的PrintWriter(“integers.txt”);
System.out.println(“请输入25分”);
System.out.println(“输入每个分数后必须按enter键”);
扫描仪sc=新的扫描仪(System.in);
智力得分=0;
而(分数<25){
int val=sc.nextInt();
整数[]x=val.toArray(新整数[val.size(25)]);
如果(x<0)断裂;
outputWriter.println(x);
分数+++;}
outputWriter.flush();
outputWriter.close();
}

有几件事。首先,您正在尝试使用int做一些不可能完成的事情。在尝试使用类时,请查看非常有用的java API:

接下来,如果我正在编写您的程序(我不是,也不打算这么做),我会观察您的实例化。数组在每个循环中都被实例化,这意味着每次用户输入值时都会有一个新数组。这意味着之前所有的数字都将丢失。另外,从参数中取出整数数组。你甚至没有在方法中使用它

在循环外部实例化数组,大小为25个元素:

int[]数组=新的int[25]

现在,您可以按如下方式在每个循环中放置此数组中的项:

数组[分数]=val

这会将该值放置在索引0->24中。在我看来,为了真正理解如何执行此程序,您必须对阵列及其工作方式进行复习

最后,计算机将此方法视为一个序列。所以,一行一行地思考你的程序中发生了什么。理想情况下,这是应该发生的事情

实例化您的对象:扫描仪、数组(存储INT的位置)、打印写入程序

指导用户如何使用该程序

执行以下操作时,运行循环25次: -以整数扫描 -将int放入数组中的适当索引处

将数组写入文件

让作者兴奋起来


关闭编写器。

您得到的错误是什么?
val
是一个
int
,因此没有任何成员方法,如
size()
toArray()
。而
x
是一个无法与整数文本进行比较的数组。我猜您希望
x.length<0
在这里。为了防止用户添加负值。。。在扫描下一个int | while(val<0){System.out.println(“请添加正数”);val=sc.nextInt();}