我正在编写一个wcfservice,供用户以块的形式下载一些文件。文件可以采用任何编码。因此,我使用了一个实用程序类来检测编码,然后从适当的偏移量读取流,但StreamReader.Read(,,)
方法将文件读取为char[]
。所以我需要一些关于这种情况的建议。btw最大区块大小为4mb。
1) 我应该将输出char[]
转换为Stream
吗?或者只通过wcf发送char[]
可以吗?
2) 如果我需要从char[]
转换为Stream
,我该怎么做?(我试图将char[]
复制到byte[]
,但没有成功)
您正在寻找MemoryStream.Write
方法。例如,以下代码将字节[]数组的内容写入内存流:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
或者,您可以基于字节数组创建一个新的、不可调整大小的MemoryStream对象:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);