天天看點

io/ioutil包

ioutil包提供給外部使用的一共有1個變量,7個方法。

其中變量Discard是io.Write接口類型,調用該變量的Write方法不會做任何事情,并且是以成功的方式傳回。

它的原型是:var Discard io.Write = devNull(0)

7個方法中有兩個函數是直接針對檔案讀操作和寫操作的:

(1)ReadFile

原型:func ReadFile(filename string) ([]byte, error)

ReadFile讀取檔案中的所有資料,傳回讀取的内容和遇到的錯誤。

(2)WriteFile

原型:func WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile向檔案寫入資料,如果之前有資料則會将原來的進行清空,如果檔案不存在則會以指定的權限建立該檔案。

然後有一個函數是對目錄進行讀操作:

(3)ReadDir

原型:func ReadDir(dirname string) ([]os.FileInfo, error)

ReadDir讀取指定目錄中的所有目錄和檔案(不包括子目錄)。傳回讀取的檔案資訊清單和遇到的錯誤,清單是經過排序的。

之後有兩個是臨時對檔案目錄操作的函數:

(4)TempFile

原型:func TempFile(dir, prefix string) (f *os.File, err error)

TempFile在dir目錄中建立一個以prefix為字首的臨時檔案,并将其以讀寫模式打開。傳回建立的檔案對象和遇到的錯誤資訊。如果dir為空,則在預設的臨時目錄中建立檔案(參見os.TimeDir),多次調用會建立不同的臨時檔案,調用者可以通過f.Name()擷取檔案的完整路徑。調用本函數所建立的臨時檔案,應該由調用者自己删除。

(5)TempDir

原型:func TempDir(dir, prefix string) (name string, err error)

TempDir功能是建立臨時目錄(其他功能和TempFile一樣),傳回建立的完整的目錄和遇到的錯誤資訊。

之後是一個對實作了io.Reader接口的使用:

(6)ReadAll

原型:func ReadAll(r io.Reader) ([]byte, error)

ReadFile讀取檔案中的所有資料,傳回讀取的資料和遇到的錯誤。如果讀取成功,則err傳回nil,而不是EOF。

最後一個是NopCloser:

(7)NopCloser

原型:func NopCloser(r io.Reader) io.ReadCloser

NopCloser将r包裝為一個ReadCloser類型,但Close方法不做任何事情。

關于go标準庫的io/ioutil包可以參考:

http://www.cnblogs.com/golove/p/3278444.html