save vs. save_as

plammy

Bekanntes Mitglied
Hallo :)
wie mache ich denn die unterscheidung zwischen save und saveAs? iwie funktioniert so nicht wie ich das mache :( was ist daran falsch?

Java:
    File f = null;

    public void save(){
     
         String file = f.getAbsolutePath();
         String _website = CreateFile.websiteTF;
              
         BufferedWriter bw;
         
         if(f.exists()){
         
             try{
                bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f),"ISO-8859-1"));

                    /* website */
                    bw.write(_website+"\r\n");
              }catch(Exception e){
                System.out.println("Fehler beim Speichern");
                }
        }
        else{
            saveAs();
        }        
    }

 public void saveAs(){
       JFileChooser fc = new JFileChooser(); 

       String _website = CreateFile.websiteTF;

       fc.setCurrentDirectory(new File("C:\\LTP"));
       
        fc.setFileFilter(new Filter(".txt"));                
        fc.setFileFilter(new Filter(".png"));

        int returnVal = fc.showSaveDialog(this); 

        if (returnVal == JFileChooser.APPROVE_OPTION)
        {
            String path = fc.getSelectedFile().getPath();                   

            try        
            { 

                f = new File(path); 

                if (!f.exists())
                {
                    BufferedWriter bw;
                    bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f),"ISO-8859-1"));

                    /* website */
                    bw.append("name ");
                    bw.write(_website+"\r\n");
               }
               else{
                    int answer = JOptionPane.showConfirmDialog(null,
                                                    "Die Datei existiert bereits. Möchten Sie diese Überschrieben?",
                                                    "Datei speichern",
                                                    JOptionPane.YES_NO_OPTION);
                   if (answer == 0)
                        System.out.println("überschrieben");
                   if (answer == 1)
                        saveAs();
}
 

jgh

Top Contributor
@ Robokopp
wo sind denn da Stringvergleiche mit
Code:
==
???


iwie funktioniert so nicht wie ich das mache was ist daran falsch?
das ist ja nunmal die beste, konkreteste und vielsagenste Fehlerbeschreibung! Wenn das dein Code ist, dann solltetest du doch verstehen was du da machst, bzw. machen willst. Wenn jetzt irgendwas nicht klappt, dann sag was nicht klappt...ansonsten benenne dein Problem, falls du Hilfe erwartest ;)
 

jgh

Top Contributor
evtl. dem [c]f[/c] einen gültigen Wert zuweisen?

evtl. die save-Methode nur dann aufrufen, wenn [c]f[/c] einen gültigen Wert besitzt...[c]f[/c] vorher auf null prüfen...sorry aber wie soll man da helfen?
 
B

bygones

Gast
Java:
File f = null;
     public void save(){
              String file = f.getAbsolutePath();
is ja nicht so schwer zu sehen dass das schief gehen muss.

Wenn du save aufrufst, musst du ein File uebergeben, d.h. irgendwo muss gespeichert sein welches File zu nehmen ist. D.h. wenn du save das erstmal aufrufst und noch kein File da ist kannst du saveAs() aufrufen und das File dir speichern. Bei spaeteren save() aufrufen dann das gespeicherte File nehmen
 

plammy

Bekanntes Mitglied
das problem ist wenn ich das auf f!=null überprüfe, ist nach dem ersten aufrufen der methode saveAs() nicht mehr null also erfüllt nicht der Zweck.. sprich passiert nix auch wenn es neue Datei ist und nicht die gespeicherte..

Java:
 File f = null;
    public void save(){
        
        if(f!=null){
        String _website = CreateFile.websiteTF;
..}
 
S

SlaterB

Gast
es ist für niemanden ersichtlich, was dein Programm fachlich ausführen soll, was schon funktioniert und/ oder noch Probleme macht,
was genau du wünschst

es wäre vielleicht gut wenn du dich weniger auf Standards wie 'save-Methode' +
'nach dem ersten Speichern erfüllt nicht der Zweck (den ich kenne aber niemanden verrate denn ist ja allgemein bekannt)'
berufst,

wenn man beim Standard bleibt:
eine save-Methode kann sicherlich allgemein nachschauen ob irgendwo hinterlegt ist, welches File zugeordnet ist,
man kennt, dass nichts da sein könnte -> dann saveAs, oder es ist schon ein Dateiname da -> dann dort wieder speichern
ergo ist ein if sinnvoll

so, wo ist nun eine Frage? welcher Zweck wird warum nicht mehr erfüllt?
schreibe bitte immer immer lange ausführliche Postings
 
B

bygones

Gast
Java:
private File theFile = null;

public void save() {
  if (theFile == null)  {
    saveAs();
    return;
  }
  doSave();
}

public void saveAs() {
   theFile = // get the newFile();
   doSave();
}

private void doSave() {
   // now save whatever in theFile
}
grob in code gefasst was ich & Slater schon sagten
 

Robokopp

Bekanntes Mitglied
Sry, ehrlich gesagt weiß ich nicht was mich dazu geritten hat die Behauptung in den Raum zu werfen :D

Gesendet von meinem GT-I9100 mit Tapatalk 2
 

Ähnliche Java Themen

Neue Themen


Oben