Go语言的文件读写2
去网上查了一圈资料后,还是觉的os好用。
权限表
常量名 | 权限 |
---|---|
os.O_RDONLY | 只读 |
os.O_WRONLY | 只写 |
os.O_RDWR | 读写 |
os.O_APPEND | 追加 |
os.O_CREATE | 不存在时创建文件 |
os.O_TRUNC | 打开时截断文件 |
写文件
package main
import ("fmt"
"os")
func checkerr(err error){
if err != nil{
fmt.Println(err)
os.Exit(1)
}
}
func main(){
f,err := os.OpenFile("test.txt",os.O_RDWR|os.O_APPEND|os.O_CREATE,0644) //注意文件权限
checkerr(err)
defer f.Close()
data := []byte("-1s -1s -1s\n") //转字节
bytesw,err := f.Write(data) //写操作
checkerr(err)
fmt.Println("bytes:",bytesw)
}
读文件
package main
import ("fmt"
"os")
func checkerr(err error){
if err != nil{
fmt.Println(err)
os.Exit(1)
}
}
func main(){
f,err := os.Open("test.txt") //使用这种方式为只读
//f,err := os.OpenFile("test.txt",os.O_RDONLY,0644)
checkerr(err)
defer f.Close()
b := make([]byte,6) //读取6个字节,如果要读取全部,要用ioutil.ReadAll(fileObj)
br,err := f.Read(b)
checkerr(err)
fmt.Println("bytes:",br)
fmt.Println("data:",b)
fmt.Println("str:",string(b))
}