首页 / C#开发 / 正文

[C#].NET/C#编程的应用程序开发中读取大文件并将其转换成字节数组(byte array)的方式有哪些,哪种更好呢?

3127 发布于: 2018-05-17 读完约需3分钟

问题描述

在.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;
}

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [C#].NET/C#编程开发中检测一个指定的字符串路径是文件还是文件夹的方法有哪些呢?

下一篇: [C#].NET/C#编程的应用程序开发中如何使用HttpWebRequest(multipart/form-data)上传文件呢?

本文永久链接码友网 » [C#].NET/C#编程的应用程序开发中读取大文件并将其转换成字节数组(byte array)的方式有哪些,哪种更好呢?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册