Hallo,
Du musst genau aufpassen (kopiert aus der SDK-Doku, Hervorhebung von mir):
Zitat: |
ReadByte-Methode
Liest ein Byte aus dem Stream und erhöht die Position im Stream um ein Byte, oder gibt -1 zurück, wenn das Ende des Streams erreicht ist. |
Du gehst in der if-Abfrage um 1 Position weiter und zum Speichern nochmals. Das bedeutet, dass nur jedes zweite Byte gespeichert wird und Du nicht korrekt das Ende des Streams abfragst.
Das ist etwas anderes als das, was wir in den letzten Tagen probiert hatten:
Zitat: |
BinaryReader.PeekChar-Methode
Gibt das nächste verfügbare Zeichen zurück, ohne die Byte- oder Zeichenposition zu erhöhen. |
Probiere es einmal so (ohne Gewähr, ich habe noch nicht viel mit Streams gearbeitet), wozu hast Du den buffer vorgesehen:
C#-Quelltext
1: 2: 3: 4: 5:
| int buffer; while ((buffer = input.ReadByte()) != -1) { fs.WriteByte((byte)buffer); |
Gruß Jürgen