大家有没有觉得用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 main
import (
"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()) }}