2017-02-12 1 views
3

Go를 사용하여 파일에서 처음 두 바이트를 읽는 좋은 방법을 찾으려고합니다.파일에서 효율적으로 처음 두 바이트 읽기 - Golang

.zip 개의 파일이 현재 디렉토리에 있고 다른 파일과 섞여 있습니다.

디렉토리의 모든 파일을 반복하여 처음 두 바이트에 .zip 식별자 (즉, 50 4B)가 포함되어 있는지 확인하고 싶습니다.

전체 파일을 읽지 않고 표준 라이브러리를 사용하여이를 수행하는 좋은 방법은 무엇입니까? io 패키지에서 사용할 수있는 기능을 통해가는

나는 그럭저럭 내 설명을 맞는 것 같다

func LimitReader(r Reader, n int64) Reader 

, 그것은 (? 나는 Reader을 얻는 방법) Reader에서 읽어하지만 n 바이트 후 정지 . 나는 나가기에 오히려 새로운 것이기 때문에 그것에 대해 어떻게해야할지 모르겠습니다.

+0

os.Open ("path")로 가져온 파일은 리더입니다. – Uvelichitel

답변

5

파일을 열면 초기 판독기가 나타납니다. 2 바이트의 경우, 나는 LimitReader을 사용하지 않을 것이다. io.ReadFull으로 2 바이트를 읽는 것이 더 쉽습니다.

r, err := os.Open(file) 
if err != nil { 
    return err 
} 

defer r.Close() 

var header [2]byte 
n, err := io.ReadFull(r, header[:]) 
if err != nil { 
    return err 
}