version: 1.10

package ioutil

import "io/ioutil"

Overview

Package ioutil implements some I/O utility functions.

Index

Examples

Package files

ioutil.go tempfile.go

Variables

  1. var Discard io.Writer = devNull(0)

Discard is an io.Writer on which all Write calls succeed without doing anything.

func NopCloser

  1. func NopCloser(r io.Reader) io.ReadCloser

NopCloser returns a ReadCloser with a no-op Close method wrapping the provided
Reader r.

func ReadAll

  1. func ReadAll(r io.Reader) ([]byte, error)

ReadAll reads from r until an error or EOF and returns the data it read. A
successful call returns err == nil, not err == EOF. Because ReadAll is defined
to read from src until EOF, it does not treat an EOF from Read as an error to be
reported.


Example:

  1. r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.")
  2. b, err := ioutil.ReadAll(r)
  3. if err != nil {
  4. log.Fatal(err)
  5. }
  6. fmt.Printf("%s", b)
  7. // Output:
  8. // Go is a general-purpose language designed with systems programming in mind.

func ReadDir

  1. func ReadDir(dirname string) ([]os.FileInfo, error)

ReadDir reads the directory named by dirname and returns a list of directory
entries sorted by filename.


Example:

  1. files, err := ioutil.ReadDir(".")
  2. if err != nil {
  3. log.Fatal(err)
  4. }
  5. for _, file := range files {
  6. fmt.Println(file.Name())
  7. }

func ReadFile

  1. func ReadFile(filename string) ([]byte, error)

ReadFile reads the file named by filename and returns the contents. A successful
call returns err == nil, not err == EOF. Because ReadFile reads the whole file,
it does not treat an EOF from Read as an error to be reported.


Example:

  1. content, err := ioutil.ReadFile("testdata/hello")
  2. if err != nil {
  3. log.Fatal(err)
  4. }
  5. fmt.Printf("File contents: %s", content)
  6. // Output:
  7. // File contents: Hello, Gophers!

func TempDir

  1. func TempDir(dir, prefix string) (name string, err error)

TempDir creates a new temporary directory in the directory dir with a name
beginning with prefix and returns the path of the new directory. If dir is the
empty string, TempDir uses the default directory for temporary files (see
os.TempDir). Multiple programs calling TempDir simultaneously will not choose
the same directory. It is the caller’s responsibility to remove the directory
when no longer needed.


Example:

  1. content := []byte("temporary file's content")
  2. dir, err := ioutil.TempDir("", "example")
  3. if err != nil {
  4. log.Fatal(err)
  5. }
  6. defer os.RemoveAll(dir) // clean up
  7. tmpfn := filepath.Join(dir, "tmpfile")
  8. if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
  9. log.Fatal(err)
  10. }

func TempFile

  1. func TempFile(dir, prefix string) (f *os.File, err error)

TempFile creates a new temporary file in the directory dir with a name beginning
with prefix, opens the file for reading and writing, and returns the resulting
*os.File. If dir is the empty string, TempFile uses the default directory for
temporary files (see os.TempDir). Multiple programs calling TempFile
simultaneously will not choose the same file. The caller can use f.Name() to
find the pathname of the file. It is the caller’s responsibility to remove the
file when no longer needed.


Example:

  1. content := []byte("temporary file's content")
  2. tmpfile, err := ioutil.TempFile("", "example")
  3. if err != nil {
  4. log.Fatal(err)
  5. }
  6. defer os.Remove(tmpfile.Name()) // clean up
  7. if _, err := tmpfile.Write(content); err != nil {
  8. log.Fatal(err)
  9. }
  10. if err := tmpfile.Close(); err != nil {
  11. log.Fatal(err)
  12. }

func WriteFile

  1. func WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile writes data to a file named by filename. If the file does not exist,
WriteFile creates it with permissions perm; otherwise WriteFile truncates it
before writing.