긴 데이터 유형을 사용하여 바이트 배열 생성?
-
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
그러나 여기서는 긴 데이터 유형을 사용하여 바이트 배열을 선언 할 수 없으므로 길이를 정수 유형 (위의 코드 2 행)으로 변환해야합니다 (옵션 엄격한 옵션). 이것이 좋은 연습입니까? 이 문제에 대한 작업은 무엇입니까?
해결책
모범 사례는 사용하는 것입니다 File.ReadAllBytes
모든 대신 :
Dim input = File.ReadAllBytes(filePath)
그건 그렇고, 파일이 될 경우 그 큰 (4GB 이상), 4GB RAM을 차지하기 때문에 바이트 배열에서 한 번에 모두로드하고 싶지 않을 것입니다 (32 비트 관리 프로세스에서는 전혀 가질 수 없습니다. 당신은 더 많은 램을 가지고 있습니다).
제휴하지 않습니다 StackOverflow