longデータ型を使用してバイト配列を作成しますか?
-
03-07-2019 - |
質問
ほとんどの場合、ファイルストリームをバイト配列に読み取り、次のコードを記述します。-
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
ただし、ここでは、longデータ型を使用してバイト配列を宣言できないため(オプションstrict on)、Lengthを整数型に変換する必要があります(上記のコードの2行目)。これは良い習慣ですか?この問題の回避策は何ですか?
解決
を使用することをお勧めします全部ではなく、 File.ReadAllBytes
:
Dim input = File.ReadAllBytes(filePath)
ところで、ファイルがその大きさ(4 GB以上)になる場合、バイト配列に一度にすべてをロードするのは望ましくありません最大4GBのRAM(32ビットの管理プロセスでは、RAMを増やしてもまったく使用できません)。
所属していません StackOverflow