Mar*_*cel 4 c# stream streamreader textreader
标题或多或少都说明了一切.电话记录:
这里 for TextReader.Read Method (Char[], Int32, Int32)
和
Here用于TextReader.ReadBlock()相同的参数类型.
我想提取一个字节数组的一部分,为此我构成一个MemoryStream我打算用StreamReader这样的方式读取:
StreamReader r = new StreamReader(new MemoryStream(rawData, 0, 184, false, false));
r.Read.....
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一个?其中一个更快还是更好?
如果你可以用部分结果做一些有用的事情,那么调用Read()并处理你得到的结果.尤其是,如果你是通过循环和每个读取(结果工作),那么做到这一点,而不是读出数据块().
ReadBlock中的"块"一词指的是阻塞的动作,而不是下一个"块"的字节.所以它会强制停止进一步执行直到它完成.
如果你使用Reflector来查看StreamReader.ReadBlock(它继承自TextReader.ReadBlock)的实现,它所做的就是多次调用"Read"方法,直到"Read"方法返回0或者我们读取为请求的多个字节.这是必需的,因为"Read"方法不一定会返回您要求的字节数.
| 归档时间: |
|
| 查看次数: |
3966 次 |
| 最近记录: |