package ioutil
Import Path
io/ioutil (on golang.org and go.dev)
Dependency Relation
imports 10 packages, and imported by 11 packages
Involved Source Files
Package ioutil implements some I/O utility functions.
As of Go 1.16, the same functionality is now provided
by package io or package os, and those implementations
should be preferred in new code.
See the specific function documentation for details.
tempfile.go
Code Examples
package main
import (
"fmt"
"io/ioutil"
"log"
"strings"
)
func main() {
r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.")
b, err := ioutil.ReadAll(r)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s", b)
}
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
files, err := ioutil.ReadDir(".")
if err != nil {
log.Fatal(err)
}
for _, file := range files {
fmt.Println(file.Name())
}
}
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
content, err := ioutil.ReadFile("testdata/hello")
if err != nil {
log.Fatal(err)
}
fmt.Printf("File contents: %s", content)
}
package main
import (
"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
content := []byte("temporary file's content")
dir, err := ioutil.TempDir("", "example")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir) // clean up
tmpfn := filepath.Join(dir, "tmpfile")
if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
log.Fatal(err)
}
}
package main
import (
"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
parentDir := os.TempDir()
logsDir, err := ioutil.TempDir(parentDir, "*-logs")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(logsDir) // clean up
// Logs can be cleaned out earlier if needed by searching
// for all directories whose suffix ends in *-logs.
globPattern := filepath.Join(parentDir, "*-logs")
matches, err := filepath.Glob(globPattern)
if err != nil {
log.Fatalf("Failed to match %q: %v", globPattern, err)
}
for _, match := range matches {
if err := os.RemoveAll(match); err != nil {
log.Printf("Failed to remove %q: %v", match, err)
}
}
}
package main
import (
"io/ioutil"
"log"
"os"
)
func main() {
content := []byte("temporary file's content")
tmpfile, err := ioutil.TempFile("", "example")
if err != nil {
log.Fatal(err)
}
defer os.Remove(tmpfile.Name()) // clean up
if _, err := tmpfile.Write(content); err != nil {
log.Fatal(err)
}
if err := tmpfile.Close(); err != nil {
log.Fatal(err)
}
}
package main
import (
"io/ioutil"
"log"
"os"
)
func main() {
content := []byte("temporary file's content")
tmpfile, err := ioutil.TempFile("", "example.*.txt")
if err != nil {
log.Fatal(err)
}
defer os.Remove(tmpfile.Name()) // clean up
if _, err := tmpfile.Write(content); err != nil {
tmpfile.Close()
log.Fatal(err)
}
if err := tmpfile.Close(); err != nil {
log.Fatal(err)
}
}
package main
import (
"io/ioutil"
"log"
)
func main() {
message := []byte("Hello, Gophers!")
err := ioutil.WriteFile("hello", message, 0644)
if err != nil {
log.Fatal(err)
}
}
Package-Level Functions (total 10, in which 7 are exported)
NopCloser returns a ReadCloser with a no-op Close method wrapping
the provided Reader r.
As of Go 1.16, this function simply calls io.NopCloser.
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.
As of Go 1.16, this function simply calls io.ReadAll.
ReadDir reads the directory named by dirname and returns
a list of fs.FileInfo for the directory's contents,
sorted by filename. If an error occurs reading the directory,
ReadDir returns no directory entries along with the error.
As of Go 1.16, os.ReadDir is a more efficient and correct choice:
it returns a list of fs.DirEntry instead of fs.FileInfo,
and it returns partial results in the case of an error
midway through reading a directory.
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.
As of Go 1.16, this function simply calls os.ReadFile.
TempDir creates a new temporary directory in the directory dir.
The directory name is generated by taking pattern and applying a
random string to the end. If pattern includes a "*", the random string
replaces the last "*". TempDir returns the name 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.
TempFile creates a new temporary file in the directory dir,
opens the file for reading and writing, and returns the resulting *os.File.
The filename is generated by taking pattern and adding a random
string to the end. If pattern includes a "*", the random string
replaces the last "*".
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.
WriteFile writes data to a file named by filename.
If the file does not exist, WriteFile creates it with permissions perm
(before umask); otherwise WriteFile truncates it before writing, without changing permissions.
As of Go 1.16, this function simply calls os.WriteFile.
Package-Level Variables (total 4, in which 1 are exported)
Discard is an io.Writer on which all Write calls succeed
without doing anything.
As of Go 1.16, this value is simply io.Discard.
The pages are generated with Golds v0.3.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |