关于编辑 txt 文件的 Java 方法的问题

Problems regarding a Java method to edit a txt file

public static void Replace_Record(String editTerm, String newItem, String newAmount, String newPrice){
        String filepath="temp_Food_Item.txt";
        String tempfile= "temp_Food_Item_temp.txt";
        File oldFile= new File(filepath);
        File newFile=new File(tempfile);
        String item=""; String quantity=""; String price="";
        System.out.println("working ");
        try{
            //System.out.println("working pt1");
            FileWriter fw= new FileWriter(tempfile,true);
            BufferedWriter bw= new BufferedWriter(fw);
            PrintWriter pw= new PrintWriter(bw);
            x = new Scanner(new File(filepath));
            x.useDelimiter("[,/n]");
            //System.out.println("working pt2");

            while(x.hasNext()){ 
                //System.out.println("working pt3");
                item=x.next();
                quantity=x.next();
                price=x.next();

                if(item.equalsIgnoreCase(editTerm)){

                    pw.println(newItem+","+newAmount+","+newPrice);
                }
                else{
                    //System.out.println("working pt4 ");
                    pw.println(item+","+quantity+","+price);
                }
            }
            x.close();
            pw.flush();
            pw.close();
            oldFile.delete();
            File dump=new File(filepath);
            newFile.renameTo(dump);
        }
        catch(Exception e){
            System.out.println("Error declared");
        }
    }

我不明白我哪里出错了,但它正在打印 "error declared" 所以我调试并发现在运行 pt1 后它停止并去捕获请帮助? 附加信息包括: 我正在为一家餐馆制作一个数据库,我正在按 item_name、item_amount、item_price 的顺序在 txt 文件中输入信息,所以我正在我的新值,主要并将它们传递给该方法,理论上,它首先复制一个文件,直到涉及到我想删除的字符串,然后替换它们并返回以从真实文件中复制字符串。但每次我 运行 我都会被抓到。

TIA

虽然我不能直接回答你的问题,但我可以提供一些想法。

第一个,catch a more explicit exception,比如IOException,FileNotFoundException。拥有更明确的代码通常是一种很好的做法,这是改进错误处理的第一步。

也可以用它做一些事情,开始时您可以在控制台中打印它并将该信息用于 debug 您的程序。它可能会准确地告诉您错误是什么以及错误在哪里。

大家好,感谢您帮助我解决这个问题,但我已经设法解决了这个问题,我接受了您的提示和 运行 多种类型的异常,直到我发现这是一个文件 io 错误,我遇到了一个问题命名文件,以便编译器无法识别我正在调用的文件,除了我们 Gucci 谢谢你们