2011-03-25 5 views
4

파일에 1025 바이트 위치에 직접 쓰고 처음 1024 바이트를 null로 남겨두고 있다고 가정 해 보겠습니다.널 바이트와 비교하는 방법?

파일을 다시 열고 첫 번째 바이트 위치에서 검색하여 첫 번째 바이트가 null인지 확인하십시오 (실제 데이터가 아님)?

+6

숫자 값 0을 가진 바이트와 어떻게 다른지 "null 바이트"라는 마법이 있다고 생각하면 오류가 발생합니다. – Ingo

답변

4

1024 바이트가 모두 0으로 기록 된 파일과 "실제 데이터가없는"파일의 차이점을 어떻게 예상 할 수 있습니까?

첫 번째 1024 바이트가 0인지 확인하려면 데이터를 읽고 정상적인 방법으로 비교하십시오.

3

null 바이트라고하는 것은 Java의 null 참조와 동일하지 않습니다. 널 바이트는 당신이해야 할 모든 바이트를 읽고 InputStreamread 방법은 int를 반환 0 주와 비교하고, 그래서 일반적으로 분명 모든 비트와 바이트, 즉 0

-1 수단 파일 끝.

0

자바 바이트는 저장되는 8 비트 메모리로 표현할 수있는 모든 값을 사용하므로 기본 "유효하지 않은"바이트 값으로 남을 장소가 없으며 사용자가 직접 선택해야합니다 (예 : 양수 값만 사용하는 경우 -1). 모든 바이트 값이 필요하면 short와 같은 더 큰 데이터 유형을 사용하여 잘못된 값을 나타낼 수 있습니다.

다른 방법으로 파일의 사용 가능/사용되지 않은 영역을 직접 추적 할 수 있습니다. 이렇게하면 파일에 사용 가능한 무료 주소에 대한 정보를 저장해야하지만 여전히 쓰기 바이트를 읽을 수 있습니다.