hi,
ich habe einen einfachen texteditor geschrieben, habe jedoch jetzt ein problem beim speichern und öffnen. meine alten methoden hatten funktioniert, jedoch habe ich eine einfachere variante mittels textArea.write(fileWriter) bzw. textArea.read(fileReader, null) entdeckt, die ich nun umsetzen wollte. die dateien werden ja auch korrekt geöffnet, nur beim speichern happerts. wenn ich eine datei öffne und dann nur speichern will wird trotzdem saveAs() aufgerufen, obwohl das file != null ist. und wenn ich nun saveAs() mache und dann wieder speichern will egal, ob save() oder saveAs() speichert es mit den text immer in der datei, die ich als aller erstes gespeichert hatte. ich kann einfach nicht den fehler entdecken. danke für euere hilfe.
sourcecode der methoden (bei loadFile ist die alte variante noch erhalten):
ich habe einen einfachen texteditor geschrieben, habe jedoch jetzt ein problem beim speichern und öffnen. meine alten methoden hatten funktioniert, jedoch habe ich eine einfachere variante mittels textArea.write(fileWriter) bzw. textArea.read(fileReader, null) entdeckt, die ich nun umsetzen wollte. die dateien werden ja auch korrekt geöffnet, nur beim speichern happerts. wenn ich eine datei öffne und dann nur speichern will wird trotzdem saveAs() aufgerufen, obwohl das file != null ist. und wenn ich nun saveAs() mache und dann wieder speichern will egal, ob save() oder saveAs() speichert es mit den text immer in der datei, die ich als aller erstes gespeichert hatte. ich kann einfach nicht den fehler entdecken. danke für euere hilfe.
sourcecode der methoden (bei loadFile ist die alte variante noch erhalten):
Code:
private File file = null;
private boolean loadFile()
{
try
{
FileReader fileReader = new FileReader(file);
/*String line = "";
String text = "";
while((line = reader.readLine()) != null)
{
text = text.concat(line + System.getProperty("line.separator"));
}
reader.close();
if(!text.equals(""))
text = text.substring(0, text.lastIndexOf(System.getProperty("line.separator")));*/
frame.getTextArea().read(fileReader, null);
return true;
}
catch (FileNotFoundException e)
{
return false;
}
catch(IOException e)
{
return false;
}
}
private boolean saveFile()
{
try
{
FileWriter fileWriter = new FileWriter(file);
frame.getTextArea().write(fileWriter);
frame.setTitle(file.getName() + " - " + Main.PROGRAM_NAME);
return true;
}
catch(IOException e)
{
return false;
}
}
public void newFile()
{
file = null;
frame.getTextArea().setText("");
frame.getStatusLabel().setText("Bereit");
frame.setTitle("Unbenannt - " + Main.PROGRAM_NAME);
}
public void open()
{
JFileChooser fileChooser = new JFileChooser(".");
// Titel des Dialogs
fileChooser.setDialogTitle("Öffnen");
fileChooser.addChoosableFileFilter(new TxtFileFilter());
fileChooser.setMultiSelectionEnabled(false);
// Wenn OK gedrueckt wurde, fuehre aus...
int ret = fileChooser.showOpenDialog(frame);
if(ret == JFileChooser.APPROVE_OPTION)
{
// der OK-Button des FileChooser-Dialogs wurde gedrueckt
file = fileChooser.getSelectedFile();
if(loadFile())
{
frame.getStatusLabel().setText(file.getName() + " erfolgreich geöffnet");
frame.setTitle(file.getName() + " - " + Main.PROGRAM_NAME);
}
}
else
{
frame.getStatusLabel().setText("Öffnen abgebrochen");
}
}
public void save()
{
if(file == null)
{
saveAs();
}
else
{
if(saveFile())
frame.getStatusLabel().setText(file.getName() + " erfolgreich gespeichert");
}
}
public void saveAs()
{
JFileChooser fileChooser = new JFileChooser(".");
// Titel des Dialogs
fileChooser.setDialogTitle("Speichern unter ...");
fileChooser.addChoosableFileFilter(new TxtFileFilter());
fileChooser.setMultiSelectionEnabled(false);
// Wenn OK gedrueckt wurde, fuehre aus...
int ret = fileChooser.showSaveDialog(frame);
if(ret == JFileChooser.APPROVE_OPTION)
{
// der OK-Button des FileChooser-Dialogs wurde gedrueckt
file = fileChooser.getSelectedFile();
if(saveFile())
frame.getStatusLabel().setText(file.getName() + " erfolgreich gespeichert");
}
else
{
frame.getStatusLabel().setText("Speichern abgebrochen");
}
}