¿Cómo leer un archivo línea por línea a string en Golang?

Para leer un archivo línea por línea se utiliza el Scanner del paquete bufio . Deje que el archivo de texto se llame sample.txt y el contenido dentro del archivo sea el siguiente:

GO Language es un lenguaje de programación compilado estáticamente, es un lenguaje de código abierto. Fue diseñado en Google por Rob Pike, Ken Thompson y Robert Grieserner. También se conoce como Golang. El lenguaje Go es un lenguaje de programación de propósito general destinado principalmente a la construcción de software complejo a gran escala.

package main
  
import (
    "bufio"
    "fmt"
    "log"
    "os"
)
  
func main() {
  
    // os.Open() opens specific file in 
    // read-only mode and this return 
    // a pointer of type os.
    file, err := os.Open("sample.txt")
  
    if err != nil {
        log.Fatalf("failed to open")
  
    }
  
    // The bufio.NewScanner() function is called in which the
    // object os.File passed as its parameter and this returns a
    // object bufio.Scanner which is further used on the
    // bufio.Scanner.Split() method.
    scanner := bufio.NewScanner(file)
  
    // The bufio.ScanLines is used as an 
    // input to the method bufio.Scanner.Split()
    // and then the scanning forwards to each
    // new line using the bufio.Scanner.Scan()
    // method.
    scanner.Split(bufio.ScanLines)
    var text []string
  
    for scanner.Scan() {
        text = append(text, scanner.Text())
    }
  
    // The method os.File.Close() is called
    // on the os.File object to close the file
    file.Close()
  
    // and then a loop iterates through 
    // and prints each of the slice values.
    for _, each_ln := range text {
        fmt.Println(each_ln)
    }
}

Producción:

Read-a-file-line-by-line-to-string-in-Golang

Publicación traducida automáticamente

Artículo escrito por nikki2398 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *