我想知道如何将流转换为字节.
我发现这个代码,但在我的情况下,它不起作用:
var memoryStream = new MemoryStream();
paramFile.CopyTo(memoryStream);
byte[] myBynary = memoryStream.ToArray();
myBinary = memoryStream.ToArray();
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,在行paramFile.CopyTo(memoryStream)它没有发生任何异常,应用程序仍然有效,但代码不能继续下一行.
谢谢.
Jam*_*See 44
如果您正在读取文件,请使用File.ReadAllBytes方法:
byte[] myBinary = File.ReadAllBytes(@"C:\MyDir\MyFile.bin");
Run Code Online (Sandbox Code Playgroud)
此外,只要您的sourceStream支持Length属性,就不需要CopyTo MemoryStream来获取字节数组:
byte[] myBinary = new byte[paramFile.Length];
paramFile.Read(myBinary, 0, (int)paramFile.Length);
Run Code Online (Sandbox Code Playgroud)
Ath*_*way 35
这是我为Stream类编写的扩展方法
public static class StreamExtensions
{
public static byte[] ToByteArray(this Stream stream)
{
stream.Position = 0;
byte[] buffer = new byte[stream.Length];
for (int totalBytesCopied = 0; totalBytesCopied < stream.Length; )
totalBytesCopied += stream.Read(buffer, totalBytesCopied, Convert.ToInt32(stream.Length) - totalBytesCopied);
return buffer;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
80502 次 |
最近记录: |