Go에서 os를 사용하여 파일에 데이터를 쓸 때 .File, 파일 포인터는 쓰기 후에 파일 끝으로 이동합니다. 이후 동일한 파일 포인터에서 데이터를 읽으려고 하면 파일 포인터가 여전히 파일 끝에 있기 때문에 즉시 io.EOF(End of File) 오류가 발생합니다.
쓰기 후 동일한 파일 포인터에서 데이터를 성공적으로 읽으려면 Seek 메서드를 사용하여 파일 포인터를 파일 시작 부분으로 재설정해야 합니다. 예제 코드를 수정하는 방법은 다음과 같습니다.
// Seek to the beginning of the file before reading _, err := f.Seek(0, 0) if err != nil { fmt.Println("Error", err) } // Read 10 times r := bufio.NewReader(f) for i := 0; i < 10; i++ { str, _, err := r.ReadLine() if err != nil { if err == io.EOF { fmt.Println("Done") return } fmt.Println("Error", err) } fmt.Println("Read", string(str)) }
Seek 메서드를 추가하면 파일 포인터가 읽기 전에 파일의 시작 부분으로 재설정되어 후속 읽기 작업에서 문제 없이 기록된 데이터를 검색할 수 있습니다. io.EOF 오류입니다.
위 내용은 Go에서 동일한 `os.File`에 쓴 후 읽을 때 `io.EOF`를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!