关于编辑 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 谢谢你们
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 谢谢你们