10초마다 Go에서 대용량 파일의 마지막 줄 읽기
대용량 파일을 완전히 로드하지 않고 대용량 파일의 마지막 몇 줄 읽기 기억력은 어려울 수 있습니다. 이 기사에서는 Go에서 파일 끝을 찾아 앞으로 읽어 이를 달성하는 방법을 살펴봅니다.
시작하려면 Stat 함수를 사용하여 파일 크기를 확인할 수 있습니다. MYFILE이라는 파일과 Seek 위치가 시작인 경우 ReadAt 함수를 사용하여 해당 위치에서 원하는 바이트 수를 읽습니다.
stat, statErr := file.Stat() if statErr != nil { panic(statErr) } start := stat.Size() - 62 _, err = file.ReadAt(buf, start) fmt.Printf("%s\n", buf)
이 방법을 사용하면 끝에서 지정된 바이트 수를 읽을 수 있습니다. 전체 파일을 메모리에 로드할 필요성이 줄어듭니다.
이 프로세스를 자동화하려면 time.Tick 채널을 사용하여 10초마다 마지막 줄을 읽을 수 있습니다.
c := time.Tick(10 * time.Second) for now := range c { readFile(MYFILE) }
요약하자면, Stat과 ReadAt를 활용하면 메모리 과부하 없이 대용량 파일의 마지막 줄을 10초마다 효율적으로 읽을 수 있습니다.
위 내용은 Go에서 10초마다 대용량 파일의 마지막 줄을 효율적으로 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!