"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo evitar `io.eof` al leer después de escribir al mismo` OS.File` in Go?

¿Cómo evitar `io.eof` al leer después de escribir al mismo` OS.File` in Go?

Publicado el 2025-02-06
Navegar:989

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

leyendo y escribiendo al mismo *os.file in go

entendiendo el problema

en Go, al escribir datos en un archivo .File, el puntero del archivo se mueve al final del archivo después de escribir. Posteriormente, al intentar leer datos del mismo puntero de archivo, se encuentra un error IO.EOF (final del archivo) inmediato (final del archivo) se encuentra porque el puntero del archivo todavía está al final del archivo.

resolution

Para leer con éxito los datos del mismo puntero de archivo después de escribir, debe restablecer el puntero del archivo al comienzo del archivo utilizando el método Seek. Así es como puede modificar el código de ejemplo:

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

agregando el método Seek, el puntero del archivo se restablece al comienzo del archivo antes de leer, permitiendo que las operaciones de lectura posteriores recuperen los datos escritos sin causar un error IO.EOF.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3