• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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.