io/ioutil 包幾個函數方法
| 名稱 | 作用 | 備注 |
| ReadAll | 讀取數據,返回讀到的字節 slice | 1 |
| ReadDir | 讀取一個目錄,返回目錄入口數組 []os.FileInfo, | 2 |
| ReadFile | 讀一個文件,返回文件內容(字節slice) | 3 |
| WriteFile | 根據文件路徑,寫入字節slice | 4 |
| TempDir | 在一個目錄中創建指定前綴名的臨時目錄,返回新臨時目錄的路徑 | 5 |
| TempFile | 在一個目錄中創建指定前綴名的臨時文件,返回 os.File | 6 |
示例
ReadAll
// ReadAll 讀取 r 中的所有數據
// 返回讀取的數據和讀取過程中遇到的任何錯誤
// 如果讀取成功,則 err 返回 nil,而不是 EOF
func ReadAll(r io.Reader) ([]byte, error)
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.
*/
ReadFile
// ReadFile 讀取文件中的所有數據
// 返回讀取的數據和讀取過程中遇到的任何錯誤
// 如果讀取成功,則 err 返回 nil,而不是 EOF
func ReadFile(filename string) ([]byte, error)
func main() {
ra, _ := ioutil.ReadFile("C:\\Windows\\win.ini")
fmt.Printf("%s", ra)
}
ReadDir
// ReadDir 讀取目錄 dirmane 中的所有目錄和文件(不包括子目錄)
// 返回讀取到的文件的信息列表和讀取過程中遇到的任何錯誤
// 返回的文件列表是經過排序的
func ReadDir(dirname string) ([]os.FileInfo, error)
func main() {
rd, err := ioutil.ReadDir("C:\\Windows")
for _, fi := range rd {
fmt.Println("")
fmt.Println(fi.Name())
fmt.Println(fi.IsDir())
fmt.Println(fi.Size())
fmt.Println(fi.ModTime())
fmt.Println(fi.Mode())
}
fmt.Println("")
fmt.Println(err)
}
WriteFile
// WriteFile 向文件 filename 中寫入數據 data
// 如果文件不存在,則以 perm 權限創建該文件
// 如果文件存在,則先清空文件,然后再寫入
// 返回寫入過程中遇到的任何錯誤
func WriteFile(filename string, data []byte, perm os.FileMode) error
func main() {
fn := "C:\\Test.txt"
s := []byte("Hello World!")
ioutil.WriteFile(fn, s, os.ModeAppend)
rf, _ := ioutil.ReadFile(fn)
fmt.Printf("%s", rf)
// Hello World!
}
TempFile
// TempFile 在目錄 dir 中創建一個臨時文件並將其打開
// 文件名以 prefix 為前綴
// 返回創建的文件的對象和創建過程中遇到的任何錯誤
// 如果 dir 為空,則在系統的臨時目錄中創建臨時文件
// 如果環境變量中沒有設置系統臨時目錄,則在 /tmp 中創建臨時文件
// 調用者可以通過 f.Name() 方法獲取臨時文件的完整路徑
// 調用 TempFile 所創建的臨時文件,應該由調用者自己移除
func TempFile(dir, prefix string) (f *os.File, err error)
func main() {
dn := "C:\\"
f, _ := ioutil.TempFile(dn, "Test")
fmt.Printf("%s", f.Name())
}
TempDir
// TempDir 功能同 TempFile,只不過創建的是目錄
// 返回值也只返目錄的完整路徑
func TempDir(dir, prefix string) (name string, err error)
func main() {
dn := "C:\\"
f, _ := ioutil.TempDir(dn, "Test")
fmt.Printf("%s", f.Name())
}
