로거 코드에서 로그 파일을 읽는 데 FileInputStream을 사용하고 있습니다. 마지막으로 로그 파일 'byteOffset'에서 읽은 파일의 바이트 수가 저장됩니다. 독자가 로그를 읽어야 할 때마다 FileInputStream.skip(byteOffset)
을 읽고 거기에서 읽습니다. 이 문맥에서 나는 InputStream.skip()
문서에서 아래 진술을 발견했습니다.InputStream.skip()은 예상보다 작은 바이트를 스킵합니까?
이 입력 스트림에서 n 바이트의 데이터를 건너 뛰고 버립니다. 건너 뛰기 방법은 여러 가지 이유로 인해 바이트보다 작은 바이트 (가능한 경우 0)을 건너 뜁니다. 이는 개의 조건 중 하나 일 수 있습니다. n 바이트가 건너 뛰기 전에 파일 끝에 도달하면 은 한 가지 가능성이 있습니다.
설명서에서 언급 한 것 외에 다른 이유로 인해 건너 뛴 실제 데이터는 입력과 다릅니다. 난 단지 내 모든 로그 리더 코드에서 준비해야 할 모든 사례를 확인하고 싶다.
나는 FileInputStream.skip를 (사용하는 경우) 난 아직도해야 메서드의 출력 값이 입력보다 작을 까봐 걱정이됩니다 (파일 끝이 input 'n'바이트보다 앞에 도달하는 경우 제외)? – vk239
예. 명세가 가능하다면 그 가능성을 무시해서는 안됩니다. –