为了账号安全,请及时绑定邮箱和手机立即绑定

如何将值存储在数组中并将它们保存在文件中

如何将值存储在数组中并将它们保存在文件中

森栏 2022-07-27 19:55:02
这是我的代码的一部分。基本上,我试图将 double Avg 和 chargradeLetter 的值存储在数组 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);    }
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

请将您的代码修改为:


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


查看完整回答
反对 回复 2022-07-27
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

您是否知道 java Serialize 方法(学),它创建了您在类文件中拥有的所有数据结构及其对象的 xml 文件,使其中的嵌套结构看起来像特定时间点的对象,就像原始 xml 一样?这可能是由于 java 在 5 种确切的本机数据类型上中继,而对象只是这些数据类型的集合。看看上面的评论以及 Stackoverflow 答案的链接,我只是向您解释了一些有关机制的信息。



查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信