package main
import(
"fmt"
"os"
"io"
"bufio"
)
/**
新建文件
*/
func WriteFile(path string){
//打开文件,新建文件
f,err:=os.Create(path)
if err!=nil{
fmt.Println(err)
return
}
//使用完文件后要关闭文件
defer f.Close()
//写入内容
for i:=0;i<10;i++{
//格式化赋值
buf:=fmt.Sprintf("i=%d\n",i)
n,err:=f.WriteString(buf)
if err!=nil{
fmt.Println(err)
return
}
fmt.Println("写入",n)
}
}
/**
读取文件
*/
func ReadFile(path string){
//打开文件
f,err:=os.Open(path)
if err!=nil{
fmt.Println(err)
return
}
// 最后关闭文件
defer f.Close()
buf:=make([]byte,1024*2)//2k大小
n,err2:=f.Read(buf)
if err2!=nil&&err2!=io.EOF{//不是文件读到结尾异常
fmt.Println(err2)
return
}
fmt.Println("buf=",string(buf[:n]))//n读到的个数
}
/**
按行读取文件
*/
func ReadFileLine(path string){
//打开文件
f,err:=os.Open(path)
if err!=nil{
fmt.Println(err)
return
}
// 最后关闭文件
defer f.Close()
//新建一个缓冲区,把内容先放到缓冲区
r:=bufio.NewReader(f)
//循环读取
for{
//遇到\n结束读取,但是'\n'也读取进去
buf,err:=r.ReadBytes('\n')
if err!=nil{
if err==io.EOF{//文件读取结束
break
}
fmt.Println(err)
return
}
fmt.Println(string(buf))
}
}
func main(){
path:="./demo.txt"
//WriteFile(path)
//ReadFile(path)
ReadFileLine(path)
}
4.22 go 文件的读写
猜你喜欢
转载自blog.csdn.net/h4241778/article/details/105347967
今日推荐
周排行