Java 迭代函数问题

Java 迭代函数问题,java,string,function,jbutton,file-handling,Java,String,Function,Jbutton,File Handling,我写的函数有一些问题。该函数基本上将一个文件和一个字符串作为参数输入到方法中,并在文件中搜索该字符串,然后将其替换为“” 然后,我有3个文本文件需要运行此方法。下面是我运行函数的代码 removeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { // TODO

我写的函数有一些问题。该函数基本上将一个文件和一个字符串作为参数输入到方法中,并在文件中搜索该字符串,然后将其替换为“”

然后,我有3个文本文件需要运行此方法。下面是我运行函数的代码

removeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    // TODO
                    try {


                    String names = reminderNameField.getText();
                    String date = reminderDate.getText();
                    String details = reminderDetailsField.getText();

                    File fileName = new File("reminderNames.txt");
                    File fileDate = new File("reminderDate.txt");
                    File fileDetails = new File("reminderDetails.txt");


                        removeReminder(fileName, names);
                        removeReminder(fileDate, date);
                        removeReminder(fileDetails, details);
                    } catch (IOException e){
                        e.printStackTrace();
                    }

我不知道为什么这不起作用。它适用于第一次迭代(例如RemoveEmider(fileName,names);),但对其他迭代不起作用,它似乎只是忽略了它们:有人能告诉我为什么会这样吗?

我总是刷新printwriter。在调用close()之前,请尝试刷新PrintWriter


你能更具体地说“不起作用”吗?文件是空的吗?它用“RemoverEmider(fileName,names);”清空第一个文件,但对其他文件不做任何操作。它从文件名中删除字符串,但将字符串保留在fileDate+fileDetails中:检查delete()返回的内容。如果为false,则表示删除不成功,这会导致重命名失败,您将查看原始文件。尝试将结果写入带有.res后缀的传入文件名的新文件中。不要删除和重命名。检查结果。是的,它似乎在删除端失败了。它不能删除文件,因此它只是向我显示原始文件,我如何解决这个问题?也许你有另一个进程访问该文件?如果在windows上,您可以使用sysinternal套件中的process explorer实用程序,并查找哪个进程正在访问该文件。另一种方法是建议b4写入另一个文件,如file temp=new file(a.getParentFile(),a.getName()+“.res”)尝试了这个方法,但没有成功:S,我只是不明白为什么它对方法的第一次调用有效,但对接下来的两次调用无效?
removeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    // TODO
                    try {


                    String names = reminderNameField.getText();
                    String date = reminderDate.getText();
                    String details = reminderDetailsField.getText();

                    File fileName = new File("reminderNames.txt");
                    File fileDate = new File("reminderDate.txt");
                    File fileDetails = new File("reminderDetails.txt");


                        removeReminder(fileName, names);
                        removeReminder(fileDate, date);
                        removeReminder(fileDetails, details);
                    } catch (IOException e){
                        e.printStackTrace();
                    }
pw.flush();