代码语言:javascript复制golang-os文件操作
package main
import (
"fmt"
"os"
)
//func main() {
// f,err :=os.Create("/home/landv/testOne.txt")
// if err != nil {
// fmt.Println("create err:",err)
// return
// }
// defer f.Close()
// fmt.Println("successful")
//}
//func main() {
// f,err :=os.Open("/home/landv/testOne.txt") //以只读方式打开
// if err != nil {
// fmt.Println("create err:",err)
// return
// }
// defer f.Close()
// _, err = f.WriteString("这是一个One测试文件#######")
// if err != nil {
// fmt.Println("WriteString err:",err)
// return
// }
// fmt.Println("successful")
//}
func main() {
f,err :=os.OpenFile("/home/landv/testOne.txt",os.O_RDWR,6)
if err != nil {
fmt.Println("create err:",err)
return
}else {
content :="这是要追加的内容n"
n,_ :=f.Seek(0,2)
_,err =f.WriteAt([]byte(content),n)
}
defer f.Close()
//_, err = f.WriteString("这是一个One测试文件#######")
//
//if err != nil {
// fmt.Println("WriteString err:",err)
// return
//}
fmt.Println("successful")
}
添加O_APPEND就可以追加内容了
代码语言:javascript复制f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
代码语言:javascript复制n,_ :=f.Seek(io.SeekStart,io.SeekEnd)
//使用常量好理解,当然你可以直接写(0,2)
代码语言:javascript复制文件读操作
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//_,err :=os.Create("D:/gotest/aaa.txt")
f,err :=os.OpenFile("D:/gotest/aaa.txt",os.O_RDWR,6)
if err != nil{
fmt.Println("OpenFile err:",err)
return
}
defer f.Close()
fmt.Println("Suceessful")
//_, _ = f.WriteString("############n")
reader := bufio.NewReader(f)
for {
buf, err := reader.ReadBytes('n')
if err != nil && err==io.EOF{
fmt.Println("文件读取完毕")
return
}else if err != nil {
fmt.Println("err:", err)
}
fmt.Println(string(buf))
}
}