의 끝 부분에 반환 값 : 워드 프로세서에 따르면자바 InputStream.skip() 파일
public class SkipTest {
public static void main(String[] args) throws IOException {
FileOutputStream fileout = new FileOutputStream("./foo");
DataOutputStream output = new DataOutputStream(fileout);
output.writeLong(12345678L);
output.writeLong(87654321L);
output.writeInt(1234);
output.flush();
output.close();
FileInputStream input = new FileInputStream("./foo");
DataInputStream datain = new DataInputStream(input);
System.out.println(datain.readLong());
System.out.println(datain.readLong());
long skipped = datain.skip(8);
System.out.printf("Attempting to skip 8 bytes, actually skipped %d.\n", skipped);
datain.close();
}
}
는 .skip()
의 반환 값은 수도, 실제 바이트 수를 건너입니다 요청한 수보다 작아야합니다. 나는 파일이 외부에서 20 바이트 것을 확인하지만, 한 나는 다음과 같은 출력을 얻을 위에 내가 코드를 실행하면
12345678
87654321
Attempting to skip 8 bytes, actually skipped 8.
그래서이 버그가 아니면 내가 뭔가 잘못하고있는 중이 야를? 파일에 4 개만 남았을 때 어떻게 8 바이트를 건너 뛸 수 있습니까?
감사합니다. 필자는 InputStream 용 문서 만보고 있었고 FileInputStream을 확인하지는 않았습니다. 나는 여전히 반환 값이 "건너 뛴 실제 바이트 수"라고 오도하는 것 같다고 생각합니다. – job