DataInputStream에서 많은 수의 int를 읽고 배열로로드하는 방법을 찾고 있습니다. 얼마나 많은 사람들이 읽을 필요가 있는지 정확히 알고 있습니다 만 단순히 반복하는 것보다 깨끗한 방법이 있다면 좋을 것입니다.DataInputStream에서 int [] 읽기
DataInputStream#read(byte[])
메서드를 사용하여 바이트 배열로이 작업을 수행하는 방법이 이미 있지만 int[]
에 해당하는 방법은 없습니다. 나는 4로 곱한 길이의 바이트 배열을 생성하여 바이트 배열로 데이터를 읽을 수 있지만 실제로는 int
에 데이터가 필요합니다.
내가 볼때, 세 가지 가능성은 내가 사용할 수있다 :
- 은 어떻게 든
int[]
에 직접 데이터를로드합니다. - 어떻게 든
byte[]
을int[]
개로 변환합니다. - 배열을 반복하고
readInt()
만 사용하십시오.
첫 번째 두 가지 해결 방법이 훨씬 더 좋지만 현재는 그 중 하나를 수행하는 방법을 알지 못합니다. 반복없이 이것을 할 수있는 간단한 방법이 있습니까?
루프에서 readInt()가 제대로 작동해야합니다. 올바르게 열렸을 경우, 오버 헤드가 최소가되도록 (듯이) DataInputStream를 버퍼링 할 필요가 있습니다. –
@HotLicks 그 일을 내가 끝내는 수도 있습니다. 내 응용 프로그램이 아마도 File IO를 많이 수행 할 것이므로 가능한 한 빨리 코드의 특정 비트를 좋아할 것입니다. –
만약 당신이 nio에 들어 가지 않는다면 (심지어 거기에있다면), 또는 네이티브 메소드를 쓰면 메모리 배열 I/O를 할 수 없기 때문에 int 배열에 직접 쓸 수 있습니다. –