Abfragen ob eine Datei schon existiert



  • Hallo, ich habe ein kleines Problem :
    Mit ...

    File f  = new File ("C:\\foo.txt");
    FileWriter fw = new FileWriter (f);
    PrintWriter w = new PrintWriter(fw);
    

    Erstelle ich eine Datei und schreibe in diese rein ...
    Jetzt ma die Frage, wie könnte ich prüfen --> wenn die datei existiert , wird einfach ans ende weitergeschrieben
    wenn nicht neu erstellt .....
    ich weiß dass

    f.exists()
    

    einen bool wert rausspuckt aber was kann ich mit dem anfangen , bzw. wie kann ich da weiter ansetzen ?! MfG



  • hi!

    boolean existiert = false;
    existiert = f.exists();
    if(existiert == true)
      System.out.println("Jo, Datei gibts schon");
    else
      System.out.println("Nee du, noch nicht vorhanden");
    

    oder kürzer:

    if(f.exists())
      System.out.println("Jo, Datei gibts schon");
    else
      System.out.println("Nee du, noch nicht vorhanden");
    

    Viele Grüße
    Stefan



  • Schön und gut die Abfrage , darauf bin ich ja auch selbst gekommen,
    🙄 Ich brauch aber den Code für :
    Wenn die Datei Vorhanden , die Vorhandene Datei öffnen , und String ans Ende hinzufügen. dh nicht NEU erstellen sondern nur ergänzen
    MfG



  • Hi!

    Na, wenn "das Anhängen von Daten in eine Datei" das Primörproblem war, musste es auch als solches hervorheben 🙄 .
    Jedenfalls, so hängt man Daten an eine Datei an:

    public void appendString(String string)
    {
      try
      {
        File file = new File("testFile.txt");
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        if(file.exists())
        {
          System.out.println("Datei exisitiert!");
          raf.seek(file.length());
          raf.writeBytes(string);
          raf.close();
        }
        else
        {
          System.out.print("Datei exisitiert nicht!");
          raf.writeChars(string);
          raf.close();
        }
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
    }
    

    Viele Grüße
    Stefan



  • Hi!
    Ich will kein RandomAccessFile Schreiben, und habs dann so gelöst, nur das seek geht nicht, gibts da für den BufferedWriter ne andere Methode?

    File file = new File("adresse.txt");
      try{
         f = new BufferedWriter(new FileWriter(file));
         //adresse = ;
         if(file.exists())
         {
         f.seek(file.length());
         f.newLine();
         f.write(nametf.getText() + "$" + strassetf.getText() + "$" + ortplztf.getText() + "$" + handytf.getText() + "$" + teltf.getText());
         f.newLine();
         }
         else
         {
           f.write(nametf.getText() + "$" + strassetf.getText() + "$" + ortplztf.getText() + "$" + handytf.getText() + "$" + teltf.getText());
         f.newLine();
         }
    
         f.close();
       }
        catch (IOException e)
        {
        JOptionPane.showMessageDialog(this, "Fehler beim Schreiben der Datei", "IO Fehler", JOptionPane.ERROR_MESSAGE);
        }
    

    Danke im Vorraus
    mfg Till



  • FileWriter hat auch andere Konstruktoren wie z.B.
    FileWriter(File file,boolean append)

    bis dänn, O'Dog



  • Beispiel bitte 🙂
    Bin bei dem append nämlich n'bisschen verwirrt...



  • Original erstellt von Zahnsteini:
    Beispiel bitte 🙂
    Bin bei dem append nämlich n'bisschen verwirrt...

    Es gibts ja auch ziemlich viele Möglichkeiten beim 2. Parameter...ganz schön knifflig...

    O'Dog



  • ok, habs rausbekommen, so geht's(falls es jemanden interessiert 😉
    Danke für alles O'Dog

    hier der Code:

    File file = new File("adresse.txt");
      try{
         f = new BufferedWriter(new FileWriter(file, true));
         {
         //f.newLine();
         f.write(nametf.getText() + "$" + strassetf.getText() + "$" + ortplztf.getText() + "$" + handytf.getText() + "$" + teltf.getText());
         f.newLine();
         f.close();
         }
    
       }
        catch (IOException e)
        {
        JOptionPane.showMessageDialog(this, "Fehler beim Schreiben der Datei", "IO Fehler", JOptionPane.ERROR_MESSAGE);
        }
    

Anmelden zum Antworten