2012-09-30 4 views
0

나는 45MB의 큰 파일을 가지고 있으며, 나에게 사용 가능한 메모리가 제한되어 있다고 가정하고 5MB를 먼저 읽고 싶다고한다.자바에서 파일의 특정 양의 데이터를 읽는 방법

Java를 사용하여이 작업을 수행해야합니다. 누군가 제발 도와주세요.

미리 감사드립니다.

+1

StackOverflow에 오신 것을 환영합니다! 여기에 자주 제기되는 질문에는 작은 코드가 포함되어 있습니다 ... 이미 시도한 것을 보여줄 수 있습니까? –

+0

텍스트 파일 이니셜 파일입니까? [BufferedReader.read (char [] cbuf, int off, int len)] (http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html)에서 살펴볼 수 있습니다. 문자 스트림을 처리하는 경우 메서드 – Sujay

답변

0

다음 코드는 파일에서 5000 바이트 (5MB)를 읽습니다.

byte[] bytes = new byte[5000]; 
    DataInputStream dis = new DataInputStream(new FileInputStream(file)); 
     int read = 0; 
     int numRead = 0; 
     while (read < bytes.length && (numRead=dis.read(bytes, read, bytes.length-read)) >= 0) { 
     read = read + numRead; 
     } 
1

이 경우 기본 바이트 스트림을 사용할 수 있습니다. I 판독을 사용하려는 http://docs.oracle.com/javase/tutorial/essential/io/bytestreams.html

체크 아웃 (바이트 [] b)

판독 '바이트의 배열로 입력 스트림에서 최대 b.length 바이트를 읽어'FileInputStream 객체 클래스의 메소드 (byte [] b, int off, int len) 메서드를 사용하면 이전에 읽은 데이터에 대한 오프셋을 사용하여이 작업을 수행 할 수도 있습니다.

관련 문제