大家有没有觉得用os包下读写文件很麻烦呀,先要打开文件,然后读取文件,然后再用[]byte数组在一点一点去读去写,下面我来给大家介绍一个很好用的方法,iotuil包,这里面方法不多但是都是很方便的方法,都是封装好的,文件不用打开,直接拿来用就可以了
ioUtil包
ReadFile(filename)-->[]byte data *****
读取指定文件中的所有内容,返回一个切片,err返回EOF
WriteFile(filename, [] byte data,FileMode) *****
向指定文件中写出数据,
ReadAll() 读取数据,读取完毕后err返回nil而非EOF
package main import ( "io/ioutil" "fmt" "strings" ) func main() { fileName:="c:\\liu\\pro\\aa.txt" bs, err:=ioutil.ReadFile(fileName) fmt.Println(err)//<nil> fmt.Println(bs) fmt.Println(string(bs)) fileName2:="C:\\Ruby\\pro\\aoo.txt" s1:="HelloWorld" err=ioutil.WriteFile(fileName2,[]byte(s1),0777) fmt.Println(err) s2:="qwertyuiopasdfghjklzxcvbnm" reader1:=strings.NewReader(s2)// //file,err:=os.Open("")//Read() bs2,_:=ioutil.ReadAll(reader1) fmt.Println(string(bs2)) }
ReadDir(dirname)-->[]FileInfo
获取指定目录下的子内容,只有一层
package mainimport ( "io/ioutil" "fmt")func main() { /* readDir(dirname)-->[] FileInfo 获取对应目录下的内容,只一层。 */ dirName:="C:\\Ruby\\pro" fileInfos,_:=ioutil.ReadDir(dirName) fmt.Println(len(fileInfos)) for i,fi:= range fileInfos{ fmt.Printf("第%d个子内容:\n",i+1) fmt.Println("\t名字:",fi.Name()) fmt.Println("\t是否是目录:",fi.IsDir()) }}