Go can read a small text file into memory with os.ReadFile.

read file `os.ReadFile` returns the file contents as bytes, which can be converted to a string.

Read Text

line
read_text.go
Replay: real traced execution (multi-file project)
package main

import (
	"fmt"
	"os"
	"strings"
)

func main() {
	var line = "alpha"
	fileName := "go09_read_text.txt"
	content := line + "\n"

	err := os.WriteFile(fileName, []byte(content), 0644)
	if err != nil {
		fmt.Println("writeError=", err != nil)
		return
	}
	defer os.Remove(fileName)

	data, err := os.ReadFile(fileName)
	if err != nil {
		fmt.Println("readError=", err != nil)
		return
	}

	text := strings.TrimSpace(string(data))
	fmt.Println("file=", fileName)
	fmt.Println("text=", text)
	fmt.Println("length=", len(text))
}
package main

import (
	"fmt"
	"os"
	"strings"
)

func main() {
	var line = "beta"
	fileName := "go09_read_text.txt"
	content := line + "\n"

	err := os.WriteFile(fileName, []byte(content), 0644)
	if err != nil {
		fmt.Println("writeError=", err != nil)
		return
	}
	defer os.Remove(fileName)

	data, err := os.ReadFile(fileName)
	if err != nil {
		fmt.Println("readError=", err != nil)
		return
	}

	text := strings.TrimSpace(string(data))
	fmt.Println("file=", fileName)
	fmt.Println("text=", text)
	fmt.Println("length=", len(text))
}
package main

import (
	"fmt"
	"os"
	"strings"
)

func main() {
	var line = "gamma"
	fileName := "go09_read_text.txt"
	content := line + "\n"

	err := os.WriteFile(fileName, []byte(content), 0644)
	if err != nil {
		fmt.Println("writeError=", err != nil)
		return
	}
	defer os.Remove(fileName)

	data, err := os.ReadFile(fileName)
	if err != nil {
		fmt.Println("readError=", err != nil)
		return
	}

	text := strings.TrimSpace(string(data))
	fmt.Println("file=", fileName)
	fmt.Println("text=", text)
	fmt.Println("length=", len(text))
}
  1. line ← "alpha", fileName ← "go09_read_text.txt", content ← "alpha\n"

    9func main() {10  var line→ "alpha" = "alpha" //@line="beta", "gamma"11  fileName→ "go09_read_text.txt" := "go09_read_text.txt"12  content→ "alpha\n" := line"alpha" + "\n"1314  err→ <nil> := os.WriteFile(fileName"go09_read_text.txt", []byte(content"alpha\n"), 0644)15  if err != nil {16    fmt.Println("writeError=", err != nil)17    return18  }19  defer os.Remove(fileName"go09_read_text.txt")2021  data→ []byte{0x61, 0x6c, 0x70, 0x68, 0x61, 0xa}, err→ <nil> := os.ReadFile(fileName"go09_read_text.txt")22  if err != nil {23    fmt.Println("readError=", err != nil)24    return25  }2627  text→ "alpha" := strings.TrimSpace(string(data[]byte{0x61, 0x6c, 0x70, 0x68, 0x61, 0xa}))28  fmt.Println("file=", fileName"go09_read_text.txt")29  fmt.Println("text=", text"alpha")30  fmt.Println("length=", len(text"alpha"))31}
    outputfile= go09_read_text.txt
    text= alpha
    length= 5
  1. line ← "beta", fileName ← "go09_read_text.txt", content ← "beta\n"

    9func main() {10  var line→ "beta" = "beta"11  fileName→ "go09_read_text.txt" := "go09_read_text.txt"12  content→ "beta\n" := line"beta" + "\n"1314  err→ <nil> := os.WriteFile(fileName"go09_read_text.txt", []byte(content"beta\n"), 0644)15  if err != nil {16    fmt.Println("writeError=", err != nil)17    return18  }19  defer os.Remove(fileName"go09_read_text.txt")2021  data→ []byte{0x62, 0x65, 0x74, 0x61, 0xa}, err→ <nil> := os.ReadFile(fileName"go09_read_text.txt")22  if err != nil {23    fmt.Println("readError=", err != nil)24    return25  }2627  text→ "beta" := strings.TrimSpace(string(data[]byte{0x62, 0x65, 0x74, 0x61, 0xa}))28  fmt.Println("file=", fileName"go09_read_text.txt")29  fmt.Println("text=", text"beta")30  fmt.Println("length=", len(text"beta"))31}
    outputfile= go09_read_text.txt
    text= beta
    length= 4
  1. line ← "gamma", fileName ← "go09_read_text.txt", content ← "gamma\n"

    9func main() {10  var line→ "gamma" = "gamma"11  fileName→ "go09_read_text.txt" := "go09_read_text.txt"12  content→ "gamma\n" := line"gamma" + "\n"1314  err→ <nil> := os.WriteFile(fileName"go09_read_text.txt", []byte(content"gamma\n"), 0644)15  if err != nil {16    fmt.Println("writeError=", err != nil)17    return18  }19  defer os.Remove(fileName"go09_read_text.txt")2021  data→ []byte{0x67, 0x61, 0x6d, 0x6d, 0x61, 0xa}, err→ <nil> := os.ReadFile(fileName"go09_read_text.txt")22  if err != nil {23    fmt.Println("readError=", err != nil)24    return25  }2627  text→ "gamma" := strings.TrimSpace(string(data[]byte{0x67, 0x61, 0x6d, 0x6d, 0x61, 0xa}))28  fmt.Println("file=", fileName"go09_read_text.txt")29  fmt.Println("text=", text"gamma")30  fmt.Println("length=", len(text"gamma"))31}
    outputfile= go09_read_text.txt
    text= gamma
    length= 5