C#を使用して、ストリームからバイナリ情報を保持するのがどれほど複雑であるかは驚きました。 WebRequestクラスを使用してPNGデータファイルをダウンロードしようとしていますが、結果のストリームをファイルに転送するだけで、破損することなく、私は思ったよりも冗長です。まず、StreamToerとStreamWriterを使用するだけでは、ReadToEnd()関数がPNGファイルのサイズを実質的に2倍にする文字列を返すため、うまくいきませんでした(おそらくUTF変換によるものです)バイナリデータをストリームに保存する
私の質問は、このコードをすべて記述するか、よりクリーンな方法がありますか?
Stream srBytes = webResponse.GetResponseStream();
// Write to file
Stream swBytes = new FileStream("map(" + i.ToString() + ").png",FileMode.Create,FileAccess.Write);
int count = 0;
byte[] buffer = new byte[4096];
do
{
count = srBytes.Read(buffer, 0, buffer.Length);
swBytes.Write(buffer, 0, count);
}
while (count != 0);
swBytes.Close();
あなたはなどの任意のバイトストリームを扱うことはありませんしかし、文字列。彼らはそうではないので。 – Joey