I cant append text to a text file, it only overwrites the previous text. My code:
//using JFileChooser to select where to save file
PrintStream outputStream = MyFrame.ShowSaveDialog();
if(outputStream!=null){
outputStream.append(input);
outputStream.close();
}
Edited: The ShowSaveDialog returns a PrintStream. Here is the code for that method:
public static PrintStream ShowSaveDialog(){
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Tekst filer", "txt");
chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(null);
try{
if(returnVal == JFileChooser.APPROVE_OPTION){
return new PrintStream(chooser.getSelectedFile());
}
else{
return null;
}
}
catch(FileNotFoundException e){
JOptionPane.showMessageDialog(null, "Ugyldig Fil!",
"error", JOptionPane.ERROR_MESSAGE);
}
return null;
}
What does
MyFrame.ShowSaveDialog();
return? The key is to create a FileOutputStream with the appropriate constructor (the second parameter should be the booleantrue
) which will make it an appending FileOutputStream, and then construct your PrintStream using this FileOutputStream object.For instance, if showSaveDialog() (note that method and variable names should begin with lower case letters) returns the name of a file or a File object, you could do something like so:
Edit:
To apply this to your posted code above, do something like so:
The crux would be these lines here:
The true in the FileOutputStream constructor creates a FileOutputStream that appends to the existing file. Please check out the FileOutputStream API for the details on this.