133 lines
2.7 KiB
Go
133 lines
2.7 KiB
Go
// Copyright 2015 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package ioutil_test
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func ExampleReadAll() {
|
|
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)
|
|
|
|
// Output:
|
|
// Go is a general-purpose language designed with systems programming in mind.
|
|
}
|
|
|
|
func ExampleReadDir() {
|
|
files, err := ioutil.ReadDir(".")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
for _, file := range files {
|
|
fmt.Println(file.Name())
|
|
}
|
|
}
|
|
|
|
func ExampleTempDir() {
|
|
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)
|
|
}
|
|
}
|
|
|
|
func ExampleTempDir_suffix() {
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
|
|
func ExampleTempFile() {
|
|
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)
|
|
}
|
|
}
|
|
|
|
func ExampleTempFile_suffix() {
|
|
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)
|
|
}
|
|
}
|
|
|
|
func ExampleReadFile() {
|
|
content, err := ioutil.ReadFile("testdata/hello")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
fmt.Printf("File contents: %s", content)
|
|
|
|
// Output:
|
|
// File contents: Hello, Gophers!
|
|
}
|
|
|
|
func ExampleWriteFile() {
|
|
message := []byte("Hello, Gophers!")
|
|
err := ioutil.WriteFile("hello", message, 0644)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|