C#을 사용하여 스트림에서 이진 정보를 보존하는 것이 얼마나 복잡한 지 알게되었습니다. WebRequest 클래스를 사용하여 PNG 데이터 파일을 다운로드하려고하지만 파일을 손상시키지 않고 결과 스트림을 파일로 전송하는 것은 생각보다 자세한 내용입니다. 첫째로, StreamToer 및 StreamWriter를 사용하는 것은 좋지 않습니다. ReadToEnd() 함수는 문자열을 반환합니다. 이는 실제로 UTF 변환으로 인해 PNG 파일의 크기를 두 배로 만듭니다. (아마도 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