バイナリ ファイル (gif や jpg など) には使用しないでください。テキストデータ用です。任意のバイナリ データに使用すると、ほぼ確実にデータが失われます。( Encoding.GetEncoding(28591) を使用すればおそらく大丈夫ですが、ポイントは何ですか?)StreamReader
StreamReader
なぜ aStreamReader
をまったく使用する必要があるのですか? バイナリ データをバイナリ データとして保持し、バイナリ データとしてディスク (または SQL) に書き戻さないのはなぜですか?
編集:これは人々が見たいと思うものであるように思われるので...あるストリームを別のストリームに(たとえばファイルに)コピーしたいだけなら、次のようなものを使用してください:
/// <summary>
/// Copies the contents of input to output. Doesn't close either stream.
/// </summary>
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int len;
while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
これを使用してストリームをファイルにダンプするには、たとえば次のようにします。
using (Stream file = File.Create(filename))
{
CopyStream(input, file);
}
Stream.CopyTo
基本的に同じ目的を果たす.NET 4で導入されたことに注意してください。