![如何在C#中将Stream转换为byte []?[重复],第1张 如何在C#中将Stream转换为byte []?[重复],第1张](/aiimages/%E5%A6%82%E4%BD%95%E5%9C%A8C%EF%BC%83%E4%B8%AD%E5%B0%86Stream%E8%BD%AC%E6%8D%A2%E4%B8%BAbyte+%5B%5D%EF%BC%9F%5B%E9%87%8D%E5%A4%8D%5D.png)
byte[] m_Bytes = StreamHelper.ReadToEnd (mystream);
功能:
public static byte[] ReadToEnd(System.IO.Stream stream) { long originalPosition = 0; if(stream.CanSeek) { originalPosition = stream.Position; stream.Position = 0; } try { byte[] readBuffer = new byte[4096]; int totalBytesRead = 0; int bytesRead; while ((bytesRead = stream.Read(readBuffer, totalBytesRead, readBuffer.Length - totalBytesRead)) > 0) { totalBytesRead += bytesRead; if (totalBytesRead == readBuffer.Length) { int nextByte = stream.ReadByte(); if (nextByte != -1) { byte[] temp = new byte[readBuffer.Length * 2]; Buffer.BlockCopy(readBuffer, 0, temp, 0, readBuffer.Length); Buffer.SetByte(temp, totalBytesRead, (byte)nextByte); readBuffer = temp; totalBytesRead++; } } } byte[] buffer = readBuffer; if (readBuffer.Length != totalBytesRead) { buffer = new byte[totalBytesRead]; Buffer.BlockCopy(readBuffer, 0, buffer, 0, totalBytesRead); } return buffer; } finally { if(stream.CanSeek) { stream.Position = originalPosition; } } }欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)