"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como evitar `io.eof` Ao ler depois de escrever para o mesmo` os.file` em go?

Como evitar `io.eof` Ao ler depois de escrever para o mesmo` os.file` em go?

Postado em 2025-02-06
Navegar:650

How to Avoid `io.EOF` When Reading After Writing to the Same `os.File` in Go?

lendo e escrevendo no mesmo *os.file em go

compreendendo o problema

em Go, ao escrever dados em um arquivo usando OS usando OS .File, o ponteiro do arquivo é movido para o final do arquivo após a gravação. Posteriormente, ao tentar ler os dados do mesmo ponteiro de arquivo, um erro imediato io.eof (final do arquivo) é encontrado porque o ponteiro do arquivo ainda está no final do arquivo.

resolução

Para ler com êxito dados do mesmo ponteiro de arquivo após a gravação, você deve redefinir o ponteiro do arquivo para o início do arquivo usando o método Seek. Veja como você pode modificar o código de exemplo:

// 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  

Ao adicionar o método de busca, o ponteiro do arquivo é redefinido para o início do arquivo antes de ler, permitindo que as operações de leitura subsequentes recuperem os dados escritos sem causar um io.eof Error.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3