Go之文件操作(读 写) 的几种方式
文件读实现示例
func ReadFileByRead(filename string){
file,err := os.Open(filename)
if err !=nil{
fmt.Println("open file failed err :",err)
return
}
defer file.Close()
var tmp =make([]byte,128)
n,err := file.Read(tmp)
if err == io.EOF{
fmt.Println("文件读完了")
return
}
if err !=nil{
fmt.Println("read file failed err :",err)
return
}
fmt.Println(string(tmp[:n]))
}
func ReadFileByBufio(filename string) {
file,err := os.Open(filename)
if err !=nil{
fmt.Println("open file failed err :",err)
return
}
defer file.Close()
reader := bufio.NewReader(file)
for{
line,err := reader.ReadString('\n')
if err == io.EOF{
if len(line) !=0{
fmt.Println(line)
}
fmt.Println("文件读完了")
break
}
if err !=nil{
fmt.Println("read file failed err:",err)
return
}
line = strings.TrimSuffix(line,"\n")
fmt.Println(line)
}
}
func ReadFileByIoutil(filename string){
content,err := ioutil.ReadFile(filename)
if err !=nil{
fmt.Println("read file failed err :",err)
return
}
fmt.Println(string(content))
}
写文件示例
package main
import (
"bufio"
"fmt"
"io/ioutil"
"os"
)
//文件写操作
func writeFile(filename string) {
file,err := os.OpenFile(filename,os.O_CREATE|os.O_TRUNC|os.O_WRONLY,0666)
if err !=nil{
fmt.Println("open file failed err :",err)
return
}
defer file.Close()
str := "山河壮丽\n"
file.Write([]byte(str))
file.WriteString("中国你好\n")
}
func writeFileByBufio(filename string) {
file,err := os.OpenFile(filename,os.O_CREATE|os.O_TRUNC|os.O_WRONLY,0666)
if err !=nil{
fmt.Println("open file failed err :",err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
str := "中国你好\n"
for i :=0;i<10;i++{
writer.WriteString(str)
}
writer.Flush()
}
func writeFileByIo(filename string) {
str := "test"
err := ioutil.WriteFile(filename,[]byte(str),0666)
if err != nil {
fmt.Println("write file failed, err:", err)
return
}
}
func main() {
files := "./demo.txt"
//writeFile(files)
//writeFileByBufio(files)
writeFileByIo(files)
}

浙公网安备 33010602011771号