Golang에서 파일 포인터 되감기
Golang에서는 파일을 여러 번 읽기 위해 파일 포인터를 되감아야 하는 시나리오가 발생할 수 있습니다. 타임스. 이를 달성하기 위한 두 가지 주요 옵션이 있습니다:
이 방법은 가장 간단하고 효율적인 접근 방식으로 간주됩니다. . (0, 0) 또는 (0, io.SeekStart) 인수를 사용하여 File.Seek 함수를 호출하면 포인터를 파일의 시작 부분으로 설정할 수 있습니다.
data.Seek(0, 0)
이 접근 방식은 빠르고 파일을 닫았다가 다시 열 필요 없이 쉽게 되감을 수 있어 파일의 여러 섹션을 여러 번 읽어야 하는 시나리오에 적합합니다.
또는 두 번째 읽기 전에 파일을 닫고 다시 열도록 선택할 수도 있습니다. 이 방법은 파일 시작 부분에 새로운 파일 객체와 파일 포인터를 생성할 수 있다는 장점이 있습니다. 그러나 특히 대용량 파일의 경우 파일 열기가 검색에 비해 상대적으로 느릴 수 있다는 점에 유의하는 것이 중요합니다. 따라서 성능이 중요한 시나리오에서는 이 접근 방식을 덜 권장합니다.
파일을 io.Reader로 사용:
Golang에서 *os.File 유형은 다음을 구현합니다. io.Reader 인터페이스. 이는 변환이나 중간 판독기가 필요 없이 *os.File을 io.Reader로 직접 사용할 수 있음을 의미합니다. 따라서 제공하신 코드 조각은 올바르며 의도한 대로 작동합니다.
r := csv.NewReader(data)
*os.File을 io.Reader로 사용하면 추가 리더가 필요 없고 작업이 단순화되므로 효율적이고 편리합니다. 코드입니다.
위 내용은 Golang에서 파일 포인터를 되감는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!