【发布时间】:2020-08-12 08:59:00
【问题描述】:
我从文件“File.txt”中获取了数组输入(它的第一个输入是数组的大小(4),下一个输入是我必须排序的数字)并对数组进行排序,但现在我想在同一个文件“File.txt”中打印排序后的数组 a[i]
直到现在我已经做到了......当我通过从文件“File.txt”中获取数组输入在控制台中运行它时,它运行正常但是当我想在它说的同一个文件中显示输出时...... .array 越界异常 我怎样才能做到这一点??
Scanner sc = new Scanner(f1);
int [] a = new int[sc.nextInt()];
int i;
int j;
for(i=0;i<a.length;i++)
{
a[i] = sc.nextInt();
}
int temp=0;
for(i=0;i<a.length;i++)
{
for(j=0;j<a.length-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
FileWriter fw = null;
BufferedWriter bw = null;
PrintWriter pw = null;
try
{
fw = new FileWriter(f1,true);
bw = new BufferedWriter(fw);
pw = new PrintWriter(bw);
pw.println(a[i]);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
fw.close();
bw.close();
pw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
【问题讨论】:
-
你为什么要打印
a[i]? -
当程序到达
pw.println(a[i])行时,你认为i包含什么?另外,那条线不应该在某种循环中吗? -
对不起...一个大错误..但是当我使用循环时它仍然显示数组超出范围异常
标签: java arrays sorting exception user-input