web-dev-qa-db-ja.com

既存のファイルを上書きする方法Java

以前に保存したファイル、SaveAsコードを上書きしたい:

public void SaveAs(){
            judul = jTextJudul.getText();
            s = area.getText();
            if(s.length()>0){//jika s terisi
                try { 
                    dialog = new FileDialog(this,"Save File As",FileDialog.SAVE);
                    dialog.setFile(judul+".txt");
                    dialog.setVisible(true);
                    path=dialog.getDirectory()+dialog.getFile();
                    FileOutputStream fos=new FileOutputStream(path);
                    System.out.println(s);
                    byte[] b=s.getBytes();
                    fos.write(b);
                    fos.close();
                    setTitle(name);
                }
                catch(Exception e){
                    JOptionPane.showMessageDialog(this,e.getMessage());
                }
            }
            else{
                JOptionPane.showMessageDialog(this,"Apa anda yakin menyimpan file kosong?");
            }
        }

そして私の保存コード(存在するファイルを上書きする必要があります)

public void Save(){
        dialog = new FileDialog(this,"Save",FileDialog.SAVE);
        file = new File(path+".txt");
        s = area.getText();
          try{
            // Create file 
            FileWriter fstream = new FileWriter(file,true);
            BufferedWriter out = new BufferedWriter(fstream);
            out.write(s);
            //Close the output stream
            out.close();
        }
        catch (IOException e){
            JOptionPane.showMessageDialog(this,e.getMessage());
        }
    }

しかし、保存すると、ファイルは「null.txt」に保存されます。これは私が望んでいることではありません。以前に保存したファイルを上書きしたい。

2番目の引数としてfalseを渡して、appendをfalseに設定し、既存のファイルを上書きします。

FileOutputStream output = new FileOutputStream("output", false);

コンストラクタをチェックしてください documentation

23
Ehsan