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();}