?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
import "io/ioutil"
概況
索引
示例
Package ioutil 實(shí)現(xiàn)了一些 I/O 實(shí)用程序功能。
變量
func NopCloser(r io.Reader)io.ReadCloser
func ReadAll(r io.Reader) ([]byte, error)
func ReadDir(dirname string) ([]os.FileInfo, error)
func ReadFile(filename string) ([]byte, error)
func TempDir(dir, prefix string) (name string, err error)
func TempFile(dir, prefix string) (f *os.File, err error)
func WriteFile(filename string, data []byte, perm os.FileMode) error
ReadAll ReadDir ReadFile TempDir TempFile
ioutil.go tempfile.go
Discard 是一個(gè) io.Writer,所有 Write 調(diào)用都無需執(zhí)行任何操作即可成功。
var Discard io.Writer = devNull(0)
func NopCloser(r io.Reader) io.ReadCloser
NopCloser 返回一個(gè) ReadCloser,其中包含提供的 Reader r 的無操作 Close 方法。
func ReadAll(r io.Reader) ([]byte, error)
ReadAll 從 r 讀取,直到出錯(cuò)或 EOF 并返回它讀取的數(shù)據(jù)。一個(gè)成功的調(diào)用返回 err == nil,而不是 err == EOF 。由于 ReadAll 被定義為從 src 讀取直到 EOF,因此它不會(huì)將來自 Read 的 EOF 視為要報(bào)告的錯(cuò)誤。
package mainimport ("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)}
func ReadDir(dirname string) ([]os.FileInfo, error)
ReadDir 讀取由 dirname 命名的目錄并返回按文件名排序的目錄條目列表。
package mainimport ("fmt""io/ioutil""log")func main() { files, err := ioutil.ReadDir(".")if err != nil { log.Fatal(err)}for _, file := range files { fmt.Println(file.Name())}}
func ReadFile(filename string) ([]byte, error)
ReadFile 讀取由文件名命名的文件并返回內(nèi)容。一個(gè)成功的調(diào)用返回 err == nil,而不是 err == EOF 。由于ReadFile 讀取整個(gè)文件,因此它不會(huì)將來自 Read 的 EOF 視為要報(bào)告的錯(cuò)誤。
package mainimport ("fmt""io/ioutil""log")func main() { content, err := ioutil.ReadFile("testdata/hello")if err != nil { log.Fatal(err)} fmt.Printf("File contents: %s", content)}
func TempDir(dir, prefix string) (name string, err error)
TempDir 在目錄 dir 中創(chuàng)建一個(gè)名稱以前綴開頭的新臨時(shí)目錄并返回新目錄的路徑。如果 dir 是空字符串,TempDir 使用臨時(shí)文件的默認(rèn)目錄(請(qǐng)參閱 os.TempDir)。同時(shí)調(diào)用 TempDir 的多個(gè)程序不會(huì)選擇相同的目錄。當(dāng)不再需要時(shí)刪除目錄是調(diào)用者的責(zé)任。
package mainimport ("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)}}
func TempFile(dir, prefix string) (f *os.File, err error)
TempFile 在目錄 dir 中創(chuàng)建一個(gè)名稱以前綴開頭的新臨時(shí)文件,打開文件進(jìn)行讀寫操作,并返回結(jié)果* os.File 。如果 dir 是空字符串,TempFile 使用臨時(shí)文件的默認(rèn)目錄(請(qǐng)參閱 os.TempDir)。同時(shí)調(diào)用 TempFile 的多個(gè)程序不會(huì)選擇相同的文件。調(diào)用者可以使用 f.Name() 來查找文件的路徑名。主叫方有責(zé)任在不再需要時(shí)刪除文件。
package mainimport ("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 upif _, err := tmpfile.Write(content); err != nil { log.Fatal(err)}if err := tmpfile.Close(); err != nil { log.Fatal(err)}}
func WriteFile(filename string, data []byte, perm os.FileMode) error
WriteFile 將數(shù)據(jù)寫入由文件名命名的文件。如果文件不存在,WriteFile 使用 perm 權(quán)限創(chuàng)建它;否則 WriteFile 會(huì)在寫入之前將其截?cái)唷?/p>