号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

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

C#开发 作者: Rector 503阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在.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#编程的应用程序开发中读取大文件并将其转换成字节数组(byte array)的方式有哪些,哪种更好呢?

发布于: 2018-05-17 13:52:57
分享扩散: