这是我的代码的一部分。基本上,我试图将 double Avg 和 char gradeLetter 中的值存储在数组 doubleAVG 和 charGRADE 中。到目前为止,我得到的是,在第一个循环中,假设 Avg = 2 那么这将存储在文件中,但是如果有第二个循环并且 Avg 的值更改为 3,那么 3 将保存在文件中两次。它删除 2 并将数字 3 保存两次。我该如何解决?我希望第一个循环存储可以是 2 的 Avg 的第一个值,然后在第二个循环中存储可以是 3 但不覆盖 2 的 Avg 的新值。忽略评论。
try {
FileWriter fw = new FileWriter(fileN);
for (int count = 0; count < students; count++) {
doubleAVG = new double[students];
charGRADE = new char[students];
doubleAVG[count] = Avg;
charGRADE[count] = gradeLetter;
fw.write("This is the grade of: " + FirstName + " " + LastName
+ " ");
fw.write(String.valueOf(doubleAVG[count]) + " ");
fw.write(charGRADE[count]);
}
fw.close();
} catch (Exception e) {
System.out.println(e);
}
请将您的代码修改为:
public class Main {
public static void main(String[] args) {
try {
FileWriter fw = new FileWriter(new File("F://test.txt"));
Scanner sc = new Scanner(System.in);
int students = 2;
double[] doubleAVG = new double[students];
char[] charGRADE = new char[students];
double avg = 0.0;
char gradeLetter;
String FirstName = "";
String LastName = "";
for (int count = 0; count < students; count++) {
System.out.println("Enter average :");
avg = sc.nextDouble();
System.out.println("Enter grade :");
gradeLetter = sc.next().charAt(0);
System.out.println("Enter First Name :");
FirstName = sc.next();
System.out.println("Enter Last Name :");
LastName = sc.next();
doubleAVG[count] = avg;
charGRADE[count] = gradeLetter;
fw.write("This is the grade of: " + FirstName + " " + LastName + " ");
fw.write(String.valueOf(doubleAVG[count]) + " ");
fw.write(charGRADE[count] + System.lineSeparator());
}
fw.close();
sc.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
控制台输入:
Enter average :
70.45
Enter grade :
B
Enter First Name :
John
Enter Last Name :
Johnson
Enter average :
90.47
Enter grade :
A
Enter First Name :
Michael
Enter Last Name :
Jordan
在test.txt 中:
This is the grade of: John Johnson 70.45 B
This is the grade of: Michael Jordan 90.47 A
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句