go語言學習筆記---讀取文件io/ioutil 包


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())
}
 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM