在文本文件中编辑记录(java)

在文本文件中编辑记录(java),java,Java,这是我在文本文件中编辑记录的确切代码。 我的代码已成功运行,但一旦单击了btnModify,文本文件中的记录就不会更新。我的密码怎么了? 注意:这些代码用于我的awt程序 btnModify.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ArrayList<String> tempData = new Arr

这是我在文本文件中编辑记录的确切代码。 我的代码已成功运行,但一旦单击了
btnModify
,文本文件中的记录就不会更新。我的密码怎么了? 注意:这些代码用于我的awt程序

btnModify.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        ArrayList<String> tempData = new ArrayList<>();

        String requestedID = txtID.getText().trim().toLowerCase();
        String requestedName = txtName.getText().trim();
        String requestedGender = txtGender.getText().trim();
        String requestedContactNumber = txtContactNumber.getText().trim();
        System.out.println("123");

        try {
            FileReader fr = new FileReader("test.txt")){
            Scanner reader = new Scanner(fr);

            System.out.println("123456");
            while (reader.hasNext()){
                String line = reader.nextLine();
                String lineLtrim = line.toLowerCase().replaceAll("^\\{", ""); 
                String lineRtrim = lineLtrim.replaceAll("\\}$", ""); 
                String[] data = lineRtrim.split(","); 

                System.out.println("5566");

                            if(data[0].equals(requestedID)){
        System.out.println("9999");

                 data[1] = data[1].replace(data[1], requestedName);
                 data[2] = data[2].replace(data[2], requestedGender);
                 data[3] = data[3].replace(data[3], requestedContactNumber);
                 tempData.add(data[0] + "," + data[1] + "," + data[2] + "," + data[3] );

               outStream.write("{" + txtID.getText().replace(data[0], requestedID));

               outStream.write("," + txtName.getText().replace(data[1], requestedName));
               outStream.write("," + txtGender.getText().replace(data[2], requestedGender));
               outStream.write("," + txtContactNumber.getText().replace(data[3], requestedContactNumber) + "}");
               outStream.write("\r\n");

                    outStream.close();
                    System.out.println("632");
                    System.out.println(tempData);
                    JOptionPane.showMessageDialog(null, "Modify Successful!");
                }
                else {
                    tempData.add(data[0] + ":" + data[1] + ":" + data[2] + ":" + data[3]);
                    System.out.println("142");
                    System.out.println(tempData);
                }
            }
            fr.close();
        }
        catch (Exception ex){

        }
    }
});

你在写文件吗?如果您不写入,则可能是文件被修改。您正在替换从文件读取的字符串,但没有将其写入文件。谢谢,将尝试添加写入文件的方法。我编辑了代码,但记录将添加到文本文件的末尾,而不是更改特定记录,我的代码有什么问题。因为您正在用变量txtID、txtName等的新值写入文件末尾。您正在用新值替换变量的值,代码中没有任何地方,您是否正在删除/替换任何已写入的内容
{001,Jack,male,0123456789}
{002,Mark,male,0198765432}