Java Netbeans中的文本修改

Java Netbeans中的文本修改,java,file,Java,File,我试图修改文件中的文本,但不是修改它,而是添加一行新信息: 这是我的密码 String id= IDSearch.getText(); String newname = NameText.getText(); String newbarcode = BarcodeText.getText(); String newsupplier= SupplierText.getText(); String newamount1= Amoun

我试图修改文件中的文本,但不是修改它,而是添加一行新信息:

这是我的密码

  String id= IDSearch.getText();
        String newname = NameText.getText();
        String newbarcode = BarcodeText.getText();
        String newsupplier= SupplierText.getText();
        String newamount1= AmountText.getText();


        ArrayList<Item> ItemsList = new ArrayList<>();

        if (id.isEmpty() || newname.isEmpty() || newbarcode.isEmpty() || newsupplier.isEmpty() || newamount1.isEmpty()) {
            JOptionPane.showMessageDialog(this, " Please Fill all fields");}
        else{
        try {
            File Items = new File ("Items.txt");
            FileReader fr = new FileReader(Items);
            BufferedReader br = new BufferedReader(fr);
            String data;
            Item tempItem;

            while ((data = br.readLine()) != null) {
                        tempItem = new Item(data);
                        if (tempItem.getID().equals(IDSearch)) 
                        {
                            tempItem.setItemName(newname);
                            tempItem.setItemBarcode(newbarcode);
                            tempItem.setSupplierID(newsupplier);
                            tempItem.setAmount(newamount1);  

                        }
                        ItemsList.add(tempItem);
                    }
            try (PrintWriter pw = new PrintWriter(new FileWriter(Items, true))) {

                    ItemsList.forEach((item) -> {
                        pw.println(newname + ";" + newbarcode+ ";" + newsupplier + ";" + newamount1);


                    });
                    JOptionPane.showMessageDialog(this, "Student Updated Succesfully");

                } 
                }catch (IOException ex) {


        }
        }
    } 
String id=IDSearch.getText();
字符串newname=NameText.getText();
字符串newbarcode=BarcodeText.getText();
字符串newsupplier=SupplierText.getText();
字符串newamount1=AmountText.getText();
ArrayList ItemsList=新的ArrayList();
if(id.isEmpty()| | | newname.isEmpty()| | | newbarcode.isEmpty()| | newsupplier.isEmpty()| | newamount1.isEmpty()){
showMessageDialog(这是“请填写所有字段”);}
否则{
试一试{
文件项=新文件(“Items.txt”);
FileReader fr=新的FileReader(项目);
BufferedReader br=新的BufferedReader(fr);
字符串数据;
项目临时项目;
而((data=br.readLine())!=null){
tempItem=新项目(数据);
if(tempItem.getID().equals(IDSearch))
{
tempItem.setItemName(newname);
tempItem.setItemBarcode(新条码);
tempItem.setSupplierID(新供应商);
tempItem.setAmount(新金额1);
}
ItemsList.add(临时项目);
}
try(PrintWriter pw=new PrintWriter(new FileWriter(Items,true))){
ItemsList.forEach((项目)->{
println(newname+“;”+newbarcode+”;“+newsupplier+”;“+newamount1);
});
showMessageDialog(此“学生已成功更新”);
} 
}捕获(IOEX异常){
}
}
} 

我似乎无法按照应该更新的方式更新tex文件。任何帮助都将不胜感激

您已将append设置为
true
。执行
newfilewriter(Items,false)
或仅仅执行
(newfilewriter(Items)
应该可以解决问题。

您正在刷新并关闭writer我应该在哪里执行该操作?在编写代码的最后一个语句中。我从未见过try()在java中是这样的,但是当这个语句完成时就会这样做看起来好像它不工作有错误吗?现在它要么替换文件中的所有文本,要么删除所有文本,只留下一行。我如何修复它?帮助它替换所有文本!你想做什么?我正在尝试只替换文本文件中的一行,而不是一行全文