有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在读取文件之前更新文件内容?

我正在编写一个程序,要求我能够将个人信息写入excel文件。我必须能够阅读这个文件的内容,并在一个组合框中呈现它们。但是,如果当前我运行该程序并输入一个人的详细信息,然后使用组合框选择其中一个人,则在当前程序运行过程中输入的任何人都不会显示在组合框中。但是,如果我关闭程序并再次运行,它们就会出现。我该怎么解决这个问题

String csvFile = "Clients.csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = ",";
        String fullName = null;

        try {
            File file = new File("Clients.csv");
            br = new BufferedReader(new FileReader(file));
            while ((line = br.readLine()) != null) {
                String[] data = line.split(cvsSplitBy);
                fullName = data[0]+" "+data[1];
                comboBox_1.addItem(fullName);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        //FILE READING END
        comboBox_1.setBounds(130, 25, 584, 20);
        existingClients.add(comboBox_1);

共 (1) 个答案

  1. # 1 楼答案

    运行程序时,BufferedReader会收到包含当前数据的csv文件。在运行时,您的程序不知道您是否在csv文件中输入了新条目

    你应该编写一段代码,当你点击“添加人”按钮(或者你在程序中称之为“添加人”)时更新csv文件,然后触发一个新的BufferedReader

    编辑:

    我不知道你的程序是gui还是控制台应用程序,但我会试着解释一下,就像我们说的是gui一样

    步骤1>;当用户在程序的文本区域中填写新用户的详细信息时,或者当用户点击“添加人员”按钮时,您应该存储此人的详细信息

    步骤2>;然后必须创建一个writer实例。此实例必须将新数据附加到csv文件中

    BufferedWriter writer = new BufferedWriter(new FileWriter(csvFile));
    writer.write("\n" + newPersonDataasString + "\n");
    

    步骤3>;最后,您必须使用csv文件提供的新BufferedReader再次读取文件

    如前所述,将这些步骤包装到readFile()、writeFile()等自定义方法中,对于维护目的来说是一个很好的解决方案

    如果我误导了你,现在就让我来