Что возвращает MyFrame.ShowSaveDialog();
? Ключ должен создать FileOutputStream с соответствующим конструктором (второй параметр должен быть логическим true
), который сделает его присоединяющимся FileOutputStream, а затем сконструировать ваш PrintStream, используя этот объект FileOutputStream.
Например, если showSaveDialog () (обратите внимание, что имена методов и переменных должны начинаться с строчных букв) возвращает имя файла или объекта File, вы можете сделать что-то вроде этого:
try {
File file = myFrame.showSaveDialog(); // if this method returns a File!!!!!
FileOutputStream fos = new FileOutputStream(file, true);
PrintStream printStream = new PrintStream(fos);
//.... etc
} catch(....) {
// ....
}
Edit:
Чтобы применить это к указанному выше коду, сделайте что-то вроде этого:
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) {
// ******* note changes below *****
File file = chooser.getSelectedFile();
FileOutputStream fos = new FileOutputStream(file, true);
return new PrintStream(fos);
} else {
return null;
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "Ugyldig Fil!", "error",
JOptionPane.ERROR_MESSAGE);
}
return null;
}
Суть здесь будет в следующих строках:
File file = chooser.getSelectedFile();
FileOutputStream fos = new FileOutputStream(file, true);
return new PrintStream(fos);
Значение true в конструкторе FileOutputStream создает FileOutputStream, который добавляется к существующему файлу. Пожалуйста, проверьте API FileOutputStream для деталей об этом.