github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/io/ioutil/example_test.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package ioutil_test 6 7 import ( 8 "github.com/shogo82148/std/fmt" 9 "github.com/shogo82148/std/io/ioutil" 10 "github.com/shogo82148/std/log" 11 "github.com/shogo82148/std/os" 12 "github.com/shogo82148/std/path/filepath" 13 "github.com/shogo82148/std/strings" 14 ) 15 16 func ExampleReadAll() { 17 r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.") 18 19 b, err := ioutil.ReadAll(r) 20 if err != nil { 21 log.Fatal(err) 22 } 23 24 fmt.Printf("%s", b) 25 26 // Output: 27 // Go is a general-purpose language designed with systems programming in mind. 28 } 29 30 func ExampleReadDir() { 31 files, err := ioutil.ReadDir(".") 32 if err != nil { 33 log.Fatal(err) 34 } 35 36 for _, file := range files { 37 fmt.Println(file.Name()) 38 } 39 } 40 41 func ExampleTempDir() { 42 content := []byte("temporary file's content") 43 dir, err := ioutil.TempDir("", "example") 44 if err != nil { 45 log.Fatal(err) 46 } 47 48 defer os.RemoveAll(dir) // clean up 49 50 tmpfn := filepath.Join(dir, "tmpfile") 51 if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil { 52 log.Fatal(err) 53 } 54 } 55 56 func ExampleTempDir_suffix() { 57 parentDir := os.TempDir() 58 logsDir, err := ioutil.TempDir(parentDir, "*-logs") 59 if err != nil { 60 log.Fatal(err) 61 } 62 defer os.RemoveAll(logsDir) // クリーンアップ 63 64 // ログは、*-logsで終わるサフィックスを持つすべてのディレクトリを検索することで、必要に応じて早期にクリーンアップできます。 65 globPattern := filepath.Join(parentDir, "*-logs") 66 matches, err := filepath.Glob(globPattern) 67 if err != nil { 68 log.Fatalf("%qのマッチングに失敗しました: %v", globPattern, err) 69 } 70 71 for _, match := range matches { 72 if err := os.RemoveAll(match); err != nil { 73 log.Printf("%qの削除に失敗しました: %v", match, err) 74 } 75 } 76 } 77 78 func ExampleTempFile() { 79 content := []byte("temporary file's content") 80 tmpfile, err := ioutil.TempFile("", "example") 81 if err != nil { 82 log.Fatal(err) 83 } 84 85 defer os.Remove(tmpfile.Name()) // クリーンアップ 86 87 if _, err := tmpfile.Write(content); err != nil { 88 log.Fatal(err) 89 } 90 if err := tmpfile.Close(); err != nil { 91 log.Fatal(err) 92 } 93 } 94 95 func ExampleTempFile_suffix() { 96 content := []byte("temporary file's content") 97 tmpfile, err := ioutil.TempFile("", "example.*.txt") 98 if err != nil { 99 log.Fatal(err) 100 } 101 102 defer os.Remove(tmpfile.Name()) // クリーンアップ 103 104 if _, err := tmpfile.Write(content); err != nil { 105 tmpfile.Close() 106 log.Fatal(err) 107 } 108 if err := tmpfile.Close(); err != nil { 109 log.Fatal(err) 110 } 111 } 112 113 func ExampleReadFile() { 114 content, err := ioutil.ReadFile("testdata/hello") 115 if err != nil { 116 log.Fatal(err) 117 } 118 119 fmt.Printf("File contents: %s", content) 120 121 // Output: 122 // File contents: Hello, Gophers! 123 } 124 125 func ExampleWriteFile() { 126 message := []byte("Hello, Gophers!") 127 err := ioutil.WriteFile("hello", message, 0644) 128 if err != nil { 129 log.Fatal(err) 130 } 131 }