问题描述
在.NET/C#编程的应用程序开发中,与文件打交道是经常的事情,使用程序读取大文件也是操作文件的一种文件。
比如,在ASP.NET MVC WEB应用程序中,有一个服务是读取大文件然后将其转换为字节数组。服务器可能遇到同时读取很多文件的情况,在这种情况下,我们需要优化C#读取大文件的方式,以尽量降低CPU的使用率。
那么,在.NET/C#编程的应用程序开发中读取大文件并将其转换成字节数组(byte array)的方式有哪些,哪种更好呢?
方案一
使用File.ReadAllBytes(...)
方法,如下:
byte[] file = System.IO.File.ReadAllBytes(fileName);
方案二
使用FileStream
读取,如下:
public byte[] ReadAllBytes(string fileName)
{
byte[] buffer = null;
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
}
return buffer;
}
方案三
使用BinaryReader
读取大文件,如下:
public byte[] FileToByteArray(string fileName)
{
byte[] fileData = null;
using (FileStream fs = File.OpenRead(fileName))
{
using (BinaryReader binaryReader = new BinaryReader(fs))
{
fileData = binaryReader.ReadBytes((int)fs.Length);
}
}
return fileData;
}
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册