1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

BufferedWriter.write() überschreibt den Rest?

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Wikinator, 23.11.05.

  1. Wikinator

    Wikinator Adams Parmäne

    Dabei seit:
    21.08.04
    Beiträge:
    1.297
    Hallo,

    ich habe ein Problem mit dem BufferedWriter. Und zwar überschreibt mir dieser Code
    Code:
    BufferedWriter out = new BufferedWriter(new FileWriter(f));
    out.write("Yes");
    out.close();
    sämtliche anderen Zeilen. In der Documentation von Sun steht, dass man mit
    Code:
    public void write(String s, int off, int len)
    angeben kann, wieviel geschrieben wird, zählen allerdings bei "len" auch neue zeilen mit?

    btw: gibt es keinen einfacheren Weg, bestehende Zeilen so zu belassen, als sie mit einem BufferedReader einzulesen und mit dem BufferedWriter wieder zu schreiben?
     
  2. seb2

    seb2 Gast

    Klar. Und das ist auch gut so. Stell Dir mal vor, Du könntest nicht explizit Zeilenumbrüche speichern oder lesen.

    Übrigens, nach einem Blick auf den Code war es relativ fix klar, aber irgendwo im Beitrag oder dem Titel des Threads anzugeben, um welche Sprache es sich handelt ist nicht so ganz verkehrt.
     
  3. Wikinator

    Wikinator Adams Parmäne

    Dabei seit:
    21.08.04
    Beiträge:
    1.297
    also wird der Zeilenumbruch als ein normales zeichen gezählt?

    gibt es bufferedreaders oder writers auch in anderen sprachen?
     
  4. TDH

    TDH James Grieve

    Dabei seit:
    07.07.04
    Beiträge:
    133
    Ich denke schon das der Zeilenumbruch als normales Zeichen gezählt wird. Je nach Codierung ist er ja auch ein "Zeichen". Der Compiler übersetzt ja \n in die jeweilige richtige "Zeichencodierung".
     
  5. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Ja, nein.

    Leider ist das mit dem Zeilenumbruch so ne Sache:

    unter Unices ist ein Zeilenumbruch nur ein Linefeed (ein Zeichen), unter Windows ein Linefeed + CarriageReturn (zwei Zeichen).

    Solange man unter einer Plattform liest und schreibt, kein Problem - wenn man aber mit gemischten Strukturen hantiert, kann das blöde Folgen haben (früher z.B. im CVS).

    Generell ist aber alles, was in einem Textfile passiert, zeichengesteuert.

    Gruß,

    .commander
     
    #5 commander, 24.11.05
    Zuletzt bearbeitet: 26.11.05
    Wikinator gefällt das.
  6. seb2

    seb2 Gast

    Ist denke ich beantwortet. Nimm Dir -- wenn Dein Programm auch auf anderen Plattformen laufen soll -- das was commander gesagt hat zu Herzen, die Kiste mit CR+LF unter Windows ist sehr nervig.
    Kennte ich alle Sprachen könnte ich Dir das beantworten. Von denen die ich kenne: nein.

    Trotzdem hilfreich im Titel die Sprache mit anzugeben.
     

Diese Seite empfehlen