2014-04-16 5 views
-3

한 번에 한 줄씩 파일에서 이진 데이터를 읽어야합니다. 하지만 그것은 내가 FileInputStream, 어떤 제안을 사용하여 한 번에 n 바이트를 읽을 수있을 것 같아?Java에서 한 번에 한 줄씩 이진 파일을 읽는 방법

FileInputStream inputStream = new FileInputStream("C:/dir/testfile"); 
byte[] buffer = new byte[3480]; 
inputStream.read(buffer); 
+7

이진 파일에는 "선"과 같은 것이 없습니다. 그것은 하나의 "것"이거나 레코드/필드를 기반으로하는 특정 형식의 문서화 된 형식으로 각각에 대해 읽을 바이트 수를 알려줍니다. –

+1

그리고 읽을 때 반환 값을 변수에 저장하고 -1로 테스트 한 다음 버퍼의 데이터 길이로 사용하는 것이 중요합니다. read() 메서드는 버퍼를 채울 필요가 없습니다. – EJP

+1

"라인"의 의미를 설명해주십시오. 분리 기호 ('\ n'과 같은)로 사용되는 특수 바이트가 있다면, 아마도 당신 자신이 열심히해야 할 것입니다. (즉, 바이트를 검색하고, 배열의 원하는 부분을'Arrays.copy'로 추출하고, 서브 어레이가 서로 다른 버퍼에 있다면 함께), 내가 알지 못하는 몇 가지 유용한 방법이 없다면 말이다. – ajb

답변

3

이진 파일에는 줄이 없습니다. 따라서 선을 읽을 수는 없습니다.

+0

첫 번째 버전이 더 좋았습니다. – Kowser

+0

두 번 편집했습니다 ... 이것은 첫 번째 버전입니다. –

2

이진 파일에는 "선"과 같은 것이 없습니다.

하나의 "물건"이거나 각 필드 또는 종료되는 방법에 대해 읽을 바이트 수와 이들이 나타내는 내용을 알려주는 레코드/필드를 기반으로하는 특정 문서 형식입니다.

(의견에서 이동)

관련 문제