一、创建文件
package main
import (
"fmt"
"os"
)
func main(){
f,err := os.Create("test.txt")
if err != nil {
fmt.Println("create file err!")
return
}
defer f.Close()
fmt.Println("Create File Successful!")
}
二、写文件
/*
1、 按字符串写入文件
2、 按位置写入内容
3、 按字节写入内容
*/
package main
import (
"fmt"
"io"
"os"
)
func main() {
f,err := os.OpenFile("test.txt",os.O_RDWR,6)
if err != nil {
fmt.Println("OpenFile Err!")
}
defer f.Close()
_,err = f.WriteString("123##90####\r\n hello world")
if err != nil {
fmt.Println("Write string error",err)
}
off,_ := f.Seek(0,io.SeekEnd)
_,err = f.WriteString("abc")
fmt.Println("Write string OK")
if err != nil {
fmt.Println("Write string error",err)
}
// 从最后位置写入
_,err = f.WriteAt([]byte("111111111111"),off)
}
三、读文件
package main
import (
"os"
"fmt"
"bufio"
"io"
)
func main() {
f, err := os.OpenFile("test.txt", os.O_RDWR, 6)
if err != nil {
fmt.Println("OpenFile err:", err)
return
}
defer f.Close()
fmt.Println("successful")
// 创建一个带有缓冲区(用户缓冲)的 reader
reader := bufio.NewReader(f)
for {
buf, err := reader.ReadBytes('\n') // 读一行数据
if err == io.EOF {
fmt.Println("文件读取完毕")
return
} else if err != nil {
fmt.Println("ReadBytes err:", err)
}
fmt.Print(string(buf))
}
}