• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

BufferedWriter.write() überschreibt den Rest?

Wikinator

Adams Parmäne
Registriert
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?
 
Wikinator schrieb:
In der Documentation von Sun steht, dass man mit angeben kann, wieviel geschrieben wird, zählen allerdings bei "len" auch neue zeilen mit?
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.
 
also wird der Zeilenumbruch als ein normales zeichen gezählt?

gibt es bufferedreaders oder writers auch in anderen sprachen?
 
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".
 
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
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Wikinator
Wikinator schrieb:
also wird der Zeilenumbruch als ein normales zeichen gezählt?
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.
gibt es bufferedreaders oder writers auch in anderen sprachen?
Kennte ich alle Sprachen könnte ich Dir das beantworten. Von denen die ich kenne: nein.

Trotzdem hilfreich im Titel die Sprache mit anzugeben.