7 Stimmen

File.WriteAllBytes oder FileStream.Write

Was ist der Unterschied zwischen File.WriteAllBytes und FileStream.Write/WriteBytes? Ich habe ein Bitmap-Objekt und möchte eine neue bmp/jpg/png auf der Festplatte erstellen. Ich glaube, ich habe irgendwo gelesen, dass WriteAllBytes FileStream.Write verwendet?

18voto

driis Punkte 156110

WriteAllBytes ist nur eine praktische Methode, die die zugrunde liegenden Stream-Operationen umschließt. (Eine Datei erstellen, in den Stream schreiben, Stream schließen usw.). Verwenden Sie es, wenn es Ihren Bedürfnissen entspricht. Wenn Sie mehr Kontrolle über die zugrunde liegenden Operationen benötigen, greifen Sie auf die Verwendung eines Stream oder ähnliches zurück.

Es geht darum, die richtige Abstraktion für die Aufgabe zu verwenden.

3voto

LarsTech Punkte 78855

Verwenden Sie WriteAllBytes, um einfach alle Bytes zu speichern, verwenden Sie Write, wenn Sie den Fortschritt beobachten müssen.

2voto

Hans Passant Punkte 894572

Sie sind mit diesem auf dem falschen Weg. Das Speichern eines Bitmap-Objekts erfordert Image.Save(). Das ist eine Methode, die weiß, wie man einen Bildcodierer verwendet, um ein Bitmap in die Bytes umzuwandeln, die ein anderes Programm (oder Ihres) wieder laden kann. Es gibt mehrere Bildcodierer, Sie können den gewünschten mit der Save()-Überladung auswählen, die es Ihnen ermöglicht, das ImageFormat auszuwählen. Das BMP-Format ist das native Windows-Format, es ist unkomprimiert. Das PNG-Format ist schön, es ist ein komprimiertes verlustfreies Format. Das JPEG-Format ist ein komprimiertes verlustbehaftetes Format, gut für Fotos. Die Dateigröße ist von groß nach klein geordnet.

1voto

Jonas Punkte 589

Sie sollten WriteAllBytes verwenden, wenn Sie ein Bitmap speichern möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X