gpt4 book ai didi

c# - 从 FileStream 获取字节数组的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:12 24 4
gpt4 key购买 nike

Microsoft网站有代码片段:

  using (FileStream fsSource = new FileStream(pathSource,
FileMode.Open, FileAccess.Read))
{
// Read the source file into a byte array.
byte[] bytes = new byte[fsSource.Length];
int numBytesToRead = (int)fsSource.Length;
int numBytesRead = 0;
while (numBytesToRead > 0)
{
// Read may return anything from 0 to numBytesToRead.
int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);

// Break when the end of the file is reached.
if (n == 0)
break;

numBytesRead += n;
numBytesToRead -= n;
}
}

我担心的是 fsSource.Length 是一个 long,而 numBytesRead 是一个 int 所以在大多数只有 2 * int.MaxValue 可以读入 bytes(流的头和尾)。所以我的问题是:

  1. 有什么理由认为这是可以的吗?
  2. 如果不是,您应该如何将 FileStream 读入 byte[]

最佳答案

在这种情况下,我什至懒得手动处理 FileStream;使用 File.ReadAllBytes相反:

byte[] bytes = File.ReadAllBytes(pathSource);

关于c# - 从 FileStream 获取字节数组的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6383652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com