Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中覆盖文本文件?_Java_User Interface_Io_Overwrite - Fatal编程技术网

如何在java中覆盖文本文件?

如何在java中覆盖文本文件?,java,user-interface,io,overwrite,Java,User Interface,Io,Overwrite,我正在向GUI读取一个名为charList.txt的文本文件,然后通过GUI进行了一些更改。我希望将所有更改保存到同一个文本文件,但我不知道如何保存。因此,我创建了一个名为new.text的新文本文件,并将其重命名以覆盖我的charList.text。但它失败了。有人能给我一些建议吗?谢谢 try { FileWriter edit = new FileWriter("new.txt"); PrintWriter ped

我正在向GUI读取一个名为charList.txt的文本文件,然后通过GUI进行了一些更改。我希望将所有更改保存到同一个文本文件,但我不知道如何保存。因此,我创建了一个名为new.text的新文本文件,并将其重命名以覆盖我的charList.text。但它失败了。有人能给我一些建议吗?谢谢

      try {
                FileWriter edit = new FileWriter("new.txt");
                PrintWriter pedit = new PrintWriter(edit);
                FileReader fr = null;
                  String line = "null";
                    try{
                        fr = new FileReader("charList.txt");
                    }
                    catch (FileNotFoundException e1){
                        e1.printStackTrace();
                    }
                    BufferedReader bf = new BufferedReader(fr);

                    while(line != null){
                        try{
                            line = bf.readLine();
                        }
                        catch (IOException e1){
                            e1.printStackTrace();
                        }
                        if (line != null){
                            fields = line.split("\t");
                            if (Integer.parseInt(idField.getText()) != Integer.parseInt(fields[0])){
                                pedit.println(line);
                            }
                            else{
                                pedit.println(Integer.parseInt(idField.getText()) + "\t" + moneyBefore + "\t" + userName + "\t" + fields[3] + "\t" + fields[4] + "\t"
                                        + fields[5] + "\t" + moneyAfter);
                            }   
                        }
                    }
                    pedit.close();
                    bf.close();
                    File old = new File("charList.txt");
                    old.delete();
                    File oldfile =new File("new.txt");
                    File newfile =new File("charList.txt");

                    if(oldfile.renameTo(newfile)){
                        System.out.println("Rename succesful");
                    }else{
                        System.out.println("Rename failed");
                    }

            }
              catch (IOException e1) {
                e1.printStackTrace();
              }

      }
  }

关闭两条溪流。重命名前删除旧文件。

请关闭
最后
块中的流。FindBugs可能有助于在此处教授适当关闭资源的一些基本知识。如何删除旧文件?流是指
br
pedit
right?1)File.delete()。2) 是的。。。他就是这个意思。我做了些改变,但还是失败了。我已经更新了我的代码,你能再看一眼吗?旧的.delete()成功了吗?检查返回代码是否为false。这在Windows上吗?