Hallo,
alles das File betreffend kommt aus dieser Methode:
if (e.getSource() == telefondateiSpeichern) {
if (filechooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
DateiSpeicherung datenspeichern = new DateiSpeicherung(filechooser.getSelectedFile());
try {
datenspeichern.datenSpeichern(pdfleser.getListe());
writeInfomeldung(GREEN, "Die Datei " + filechooser.getSelectedFile() + " wurde erfolgreich gespeichert.");
}
catch (FileNotFoundException fnfe) {
writeInfomeldung(RED, fnfe + ": Die Datei wurde nicht gefunden!");
}
catch (IOException ioe) {
writeInfomeldung(RED, ioe + ": Eingabe-Ausgabe-Fehler!");
}
}
}
Hier die komplette Klasse Datenspeicherung:
public class DateiSpeicherung {
private File file;
public DateiSpeicherung(File filename) {
file = filename;
}
private File checkAndSetExtension(File filename) throws IOException {
String dateiname = filename.getName().trim();
if (dateiname.lastIndexOf('.') != -1) {
if (!dateiname.substring(dateiname.lastIndexOf('.')).toLowerCase().equals(".tel")) {
System.out.println("1: " + file.getAbsolutePath());
if (filename.renameTo(new File(file.getAbsolutePath(), file.getAbsolutePath() + ".tel")) == false)
throw new IOException();
}
}
else {
System.out.println("2: " + file.getAbsolutePath());
if (filename.renameTo(new File(file.getAbsolutePath(), file.getAbsolutePath() + ".tel")) == false)
throw new IOException();
}
return filename;
}
public void datenSpeichern(HashMap<String, String> telefondaten) throws FileNotFoundException, IOException {
ObjectOutputStream outputstream;
file = checkAndSetExtension(file);
outputstream = new ObjectOutputStream(new FileOutputStream(file));
outputstream.writeObject(telefondaten);
outputstream.close();
}
}
Markus