FileStream fs = new FileStream(binaryFilePath, FileMode.Open, FileAccess.Read); //Read all bytes into an array from the specified file. int nBytes = (int)fs.Length;//计算流的长度 byte[] byteArray = new byte[nBytes];//初始化用于MemoryStream的Buffer int nBytesRead = fs.Read(byteArray, 0, nBytes);//将File里的内容一次性的全部读到byteArray中去 using (MemoryStream br = new MemoryStream(byteArray))//初始化MemoryStream,并将Buffer指向FileStream的读取结果数组 { /your code
发布评论
评论(2)
这里有讲解的:C#应用MemoryStream提高File读取速度
C#可以利用MemoryStream和MemoryStream提高File读取速度
一、FileStream实现方法:
首先,看一下FileStream的代码以及原理:
FileStream fs = new FileStream(binaryFilePath, FileMode.Open, FileAccess.Read);
Encoding enc = Encoding.ASCII;
using (BinaryReader br = new BinaryReader(fs,enc))
{
//
}
BinaryReader 提供了ReadInt16,ReadChar,ReadDouble,……但是每次Position.Seek都会去定位流的指针,所以会耗费一些时间。
二、MemoryStream实现方法
FileStream fs = new FileStream(binaryFilePath, FileMode.Open, FileAccess.Read);
//Read all bytes into an array from the specified file.
int nBytes = (int)fs.Length;//计算流的长度
byte[] byteArray = new byte[nBytes];//初始化用于MemoryStream的Buffer
int nBytesRead = fs.Read(byteArray, 0, nBytes);//将File里的内容一次性的全部读到byteArray中去
using (MemoryStream br = new MemoryStream(byteArray))//初始化MemoryStream,并将Buffer指向FileStream的读取结果数组
{
/your code
}