C#怎样加速文件读取 有个超过10M的文件,需要高频率的读取,我的思路是先将文件读进内存,然后进行处理。请问可行吗?如何读进内存? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文件流FileStream...4.0还可以用内存映射文件... 我机子装的是VS2005看了网上一个办法:FileStream fs = File.OpenRead(filename);或者FileStream fs = FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);2、准备一个存放文件内容的字节数组,fs.Length将得到文件的实际大小,就像下面这样 byte[] data = new byte[fs.Length];3、调用一个文件流的一个方法读取数据到data数组中 fs.Read (data, 0, data.Length);这其中有个问题:读到内存中后,想复制data中指定位置的10个字节到目标字节数组,如何实现? 那就是对数组的操作了,byte[] bs = new byte[10];for(int i=0;i<10;i++){ bs[i] = data[index+i];} 复制数组内容不用那么麻烦,有现成的Array.Copy方法... 只有Array.CopyTo(),没有Array.Copy()啊 直接从Data这个数组中取就好了;Console.Write((char)Data[i]); public static void SafeRead (Stream stream, byte[] data){ int offset=0; int remaining = data.Length; // 只要有剩余的字节就不停的读 while (remaining > 0){ int read = stream.Read(data, offset, remaining); if (read <= 0) throw new EndOfStreamException("文件读取到"+read.ToString()+"失败!"); // 减少剩余的字节数 remaining -= read; // 增加偏移量 offset += read; }}搞定了,谢谢各位。 新手菜鸟问题 自定义验证控件出错,请高手帮忙! 水晶报表数据库专家的问题 关于SqlHelper的疑问 关于C#的字符实体转换。。。 请问怎样加密长字符串(0-2000字符左右) 60高分求,循环执行同一个线程的问题 如何实现ITemplate 接口? 如何判断一个数据库已经处于打开状态(避免重复打开) 请问C#有没有如JAVA一样有(静态)内部类? 以个关于MSComm的问题 求CRC16算法
FileStream fs = File.OpenRead(filename);或者FileStream fs = FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);2、准备一个存放文件内容的字节数组,fs.Length将得到文件的实际大小,就像下面这样 byte[] data = new byte[fs.Length];3、调用一个文件流的一个方法读取数据到data数组中 fs.Read (data, 0, data.Length);
这其中有个问题:读到内存中后,想复制data中指定位置的10个字节到目标字节数组,如何实现?
byte[] bs = new byte[10];
for(int i=0;i<10;i++)
{
bs[i] = data[index+i];
}