0
0
GoHow-ToBeginner · 3 min read

How to Use ioutil.ReadFile in Go: Simple File Reading Guide

Use ioutil.ReadFile in Go to read the entire content of a file into memory as a byte slice. It takes the file path as input and returns the file data and an error if any occurs.
📐

Syntax

The ioutil.ReadFile function reads the whole file specified by the path and returns its content as a byte slice and an error value.

  • filename: The path to the file you want to read.
  • Returns: []byte containing file data and error if reading fails.
go
data, err := ioutil.ReadFile(filename)
💻

Example

This example shows how to read a file named example.txt and print its content as a string. It also handles errors if the file does not exist or cannot be read.

go
package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	data, err := ioutil.ReadFile("example.txt")
	if err != nil {
		fmt.Println("Error reading file:", err)
		return
	}
	fmt.Println("File content:")
	fmt.Println(string(data))
}
Output
File content: Hello, this is example text.
⚠️

Common Pitfalls

Common mistakes include not checking the error returned by ioutil.ReadFile, which can cause your program to crash or behave unexpectedly if the file is missing or unreadable. Also, reading very large files with ReadFile can use a lot of memory since it loads the entire file at once.

Note: Since Go 1.16, ioutil is deprecated. Use os.ReadFile instead for new code.

go
package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	// Wrong: ignoring error
	data, _ := ioutil.ReadFile("missing.txt")
	fmt.Println(string(data))

	// Right: check error
	data, err := ioutil.ReadFile("missing.txt")
	if err != nil {
		fmt.Println("Failed to read file:", err)
		return
	}
	fmt.Println(string(data))
}
Output
Failed to read file: open missing.txt: no such file or directory
📊

Quick Reference

  • Function: ioutil.ReadFile(filename string) ([]byte, error)
  • Input: File path as string
  • Output: File content as byte slice and error
  • Use case: Read small to medium files fully into memory
  • Alternative: Use os.ReadFile in Go 1.16+

Key Takeaways

Always check the error returned by ioutil.ReadFile to handle missing or unreadable files.
ioutil.ReadFile reads the entire file into memory, so avoid it for very large files.
Since Go 1.16, prefer using os.ReadFile instead of ioutil.ReadFile.
The function returns file content as a byte slice, which you can convert to a string.
Use ioutil.ReadFile for simple, quick file reading tasks in small programs.