-1

基本上我正在使用流阅读器将文件中的所有字节读入字节数组。

我声明的数组如下所示:byte[] array = new byte[256];

数组256的大小可以从文件中读取整个字节吗?说一个文件有 500 个字节而不是 256 个字节?

或者数组中的每个元素的大小为 256 字节?

4

2 回答 2

1

只需使用

 byte[] byteData = System.IO.File.ReadAllBytes(fileName);

然后您可以通过查看byteData.Length属性来了解文件的长度。

于 2012-12-01T21:01:50.247 回答
0

您可以File.ReadAllBytes改用:

byte[] fileBytes = File.ReadAllBytes(path);

或者,如果您只想知道大小,使用FileInfo对象:

FileInfo f = new FileInfo(path);
long s1 = f.Length;

编辑:如果你想“以经典的方式”评论:

byte[] array;
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    int num = 0;
    long length = fileStream.Length;
    if (length > 2147483647L)
    {
        throw new ArgumentException("File is greater than 2GB, hence it is too large!", "path");
    }
    int i = (int)length;
    array = new byte[i];
    while (i > 0)
    {
        int num2 = fileStream.Read(array, num, i);
        num += num2;
        i -= num2;
    }
}

(通过反映ILSpy

于 2012-12-01T21:02:24.297 回答