golang中的ioutil包


ioutil包

除了io包可以讀寫數據,go還提供了一個輔助的工具包就是ioutil。

import "io/ioutil"

該包的介紹只有一句話:Package ioutil implements some I/O utility functions.

ioutil包的方法

// Discard 是一個io.Writer 接口,調用它的Write方法將不做任何事情
// 並且始終成功返回
var Discard io.Writer = devNull(0)

// ReadAll讀取r中的所有數據,返回讀取的數據和遇到的錯誤
// 如果讀取成功,則err返回nil,而不是EOF,因為ReadAll定義為讀取
// 所有數據,所以不會把EOF當作錯誤處理
func ReadAll(r io.Reader) ([]byte, error)

// ReadFile讀取文件中的所有數據,返回讀取的數據和遇到的錯誤
// 如果讀取成功,則err返回nil,而不是EOF
func ReadFile(filename string) ([]byte, error)

// WriteFile向文件中寫入數據,寫入前會清空文件。
// 如果文件不存在,則會以指定的權限創建文件
// 返回遇到的錯誤
func WriteFile(filename string, data []byte, perm os.FileMode) error 

// ReadDir 讀取指定目錄中的所有目錄和文件(不包括子目錄)
// 返回讀取到文件信息列表和遇到錯誤,列表是經過排序的。
func ReadDir(dirname string) ([]os.FileInfo, error)

// NopCloser 將r包裝成一個ReadCloser類型,但Close方法不做任何事情
func NopCloser(r io.Reader) io.ReadCloser

// TempFile在dir目錄中創建一個以prefix為前綴的臨時文件,並將其以讀寫模式打開。返回創建的文件對象和遇到的錯誤
// 如果dir為空,則在默認的臨時目錄中創建文件(參加os.TempDir),多次調用會創建不通的臨時文件,調用者可以通過f.Name()獲取文件的完整路徑
// 調用本函數所創建的臨時文件,應該由調用者字節刪除
func TempFile(dir, prefix string) (f *os.File, err error)

// TempDir功能通TempFile,只不過創建的是目錄,返回目錄的完整路徑
func TempDir(dir, prefix string) (name string, err error)

示例

package main 
import (
    "io/ioutil"
    "fmt"
    "os"
)

func main() {
    //1.讀取文件中的所有數據
    fileName1 := "/Users/ruby/Documents/pro/a/aa.txt"
    data, err := ioutil.ReadFile(fileName1)
    fmt.Println(err)
    fmt.Println(string(data))
    
    //2.寫出數據
    fileName2 := "/Users/ruby/Documents/pro/a/bbb.txt"
    s1 := "hello world"
    err := ioutil.WriteFile(fileName2, []byte(s1), 0777)
    fmt.Println(err)
    
    // 3.讀取所有數據
    s2 := "qwertyuiop"
    r1 := strings.NewReader(s2)
    data, _ := ioutil.ReadAll(r1)
    fmt.Println(data)
    
    // 4.讀取一個目錄下子內容:子文件和子目錄,但是僅有一層
    dirName := "/Users/ruby/Documents/pro/a"
    fileInfos, _ := ioutil.ReadDir(dirName)
    fmt.Println(len(fileInfos))
    for
}


免責聲明!

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



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