• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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?
 

seb2

Gast
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.
 

Wikinator

Adams Parmäne
Registriert
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?
 

TDH

James Grieve
Registriert
07.07.04
Beiträge
132
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".
 

commander

Baldwins roter Pepping
Unvergessen
Registriert
25.02.04
Beiträge
3.206
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

seb2

Gast
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.