Problem mit PrintWriter

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von gateway_2_hell, 27. Mai 2006 .

  1. 27. Mai 2006
    Hallo! Ich probiere jetzt schon seit mehreren Tagen etwas mit der Klasse PrintWriter in eine Datei zu schreiben... Es klappt einfach nicht. Vielleicht sieht ja wer den Fehler im Code



    Code:
    import java.io.*;
    
    public class test
    {
    private File dat;
    private FileOutputStream raus;
    private PrintWriter wr;
    
     public test() throws IOException
     {
     dat = new File("C:\\Dokumente und Einstellungen\\XXXXX X\\Desktop\\proxy tool\\andrq2.ini");
     raus = new FileOutputStream(dat);
     wr = new PrintWriter(raus);
     wr.println("hallo");
     
     }
    }
    

    So wies hier ist, bleibt die Datei einfach leer.



    greetz hell
     
  2. 27. Mai 2006
    Das das nicht klappt liegt daran, dass Java nach Aufruf von println die Daten nicht direkt schreibt, sondern intern in einen Puffer packt. Lösung:
    Code:
     public void test() throws IOException {
     File dat = new File( "C:\\Dokumente und Einstellungen\\xxxxxx\\Desktop\\andrq2.ini" );
     PrintWriter wr = new PrintWriter( new FileOutputStream( dat ), true ); //Moeglichkeit 1
     wr.println( "hallo" );
     wr.flush(); //Moeglichkeit 2
     wr.close(); //Moeglichkeit 3 (sollte immer geschlossen werden)
     }
    Möglickeit 1 ist, dass true hinzuzufügen, dass ändert intern, das nach dem Aufruf von println dirket auf die Festplatte geschrieben wird.
    Möglichkeit 2: Hier wird flush aufgerufen (nur notwendig wenn das true nicht steht) was Java dazu veranlasst den o.g. Puffer auf die Festplatte zu schreiben.
    Möglichkeit 3: Solltest du immer machen - die Datei schließen - nach dem Aufruf wird auch erst der Puffer geschrieben und dann die Datei geschlossen..

    Gruß
     
  3. 27. Mai 2006
    Geil! Danke!

    Wenigstens gibts in diesem Board Leute die Ahnung haben *g*
    Habs schon in nem Java Board probiert - ohne Erfolg....


    danke hast ne 10


    hell


    //edit

    Eine Frage hätte ich doch noch!

    Wie kann ich so einen String

    pref("network.proxy.type", 0);

    in eine Datei schreiben? Die Anführungsstriche machen mir Probleme, da ich keinen String erstellen kann, der diese Anführungsstriche " " in dem String selbst hat.
     
  4. 27. Mai 2006
    Du musst die Anführungszeichen einfach quoten:
    println("pref(\"network.proxy.type\",0);");
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.