문제

대부분의 경우 파일 스트림을 바이트 배열로 읽으면 다음 코드를 작성합니다.

 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 비트 관리 프로세스에서는 전혀 가질 수 없습니다. 당신은 더 많은 램을 가지고 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top