大多数情况下,当我们将文件流读入字节数组时,我们会编写以下代码: -

 Dim inputStream As New System.IO.FileStream(filePath, IO.FileMode.Open)
 Dim fileLength As Integer= CType(inputStream.Length, Integer)
 Dim input(fileLength) As Byte

 Using inputStream
     inputStream.Read(input, 0, fileLength)
 End Using

但是在这里我们必须将Length转换为整数类型(上面代码的第2行),因为我们不能使用long数据类型声明一个字节数组(选项严格打开)。这是一个好习惯吗?这个问题的解决方法是什么?

有帮助吗?

解决方案

好的做法是使用 File.ReadAllBytes 而不是整个事情:

Dim input = File.ReadAllBytes(filePath)

顺便说一下,如果你的文件那么大(超过4 GB),你就不希望在字节数组中一次性加载它,因为它需要增加4GB内存(在32位管理进程中,即使你有更多的内存,你根本也无法拥有它)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top