Чтение всего файла в Go: примеры и фрагменты кода

Чтобы прочитать весь файл в Go, вы можете использовать несколько методов в зависимости от ваших требований и размера файла. Вот несколько методов с примерами кода:

  1. ioutil.ReadFile:

    package main
    import (
    "fmt"
    "io/ioutil"
    "log"
    )
    func main() {
    filename := "example.txt"
    data, err := ioutil.ReadFile(filename)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(data))
    }
  2. os.Open и bufio.Scanner:

    package main
    import (
    "bufio"
    "fmt"
    "log"
    "os"
    )
    func main() {
    filename := "example.txt"
    file, err := os.Open(filename)
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }
    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }
    }
  3. os.Open и io.ReadAll:

    package main
    import (
    "fmt"
    "io"
    "log"
    "os"
    )
    func main() {
    filename := "example.txt"
    file, err := os.Open(filename)
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    data, err := io.ReadAll(file)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(data))
    }
  4. bufio.NewReader и bufio.Reader.ReadString:

    package main
    import (
    "bufio"
    "fmt"
    "log"
    "os"
    )
    func main() {
    filename := "example.txt"
    file, err := os.Open(filename)
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    reader := bufio.NewReader(file)
    for {
        line, err := reader.ReadString('\n')
        if err != nil {
            if err == io.EOF {
                break
            }
            log.Fatal(err)
        }
        fmt.Print(line)
    }
    }

Это всего лишь несколько примеров методов чтения целого файла в Go. В зависимости от ваших конкретных требований вы можете выбрать метод, который подходит вам лучше всего.