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  }