package main
import (
"fmt"
"io/ioutil"
"os"
)
const filePath = "F://go_softinstall//goworkpath//src//MyGoForIt//simple//temp//readMe.md"
func readFileTest(filePath string){
file ,err :=os.Open(filePath)
if err!= nil{
panic(err)
}
defer file.Close()
buf := make([] byte,100)
res ,ero := file.Read(buf)
if ero != nil{
panic(ero)
}
//逐行读取有的时候真的很方便,性能可能慢一些,但是仅占用极少的内存空间。
fileData := string(buf)
fmt.Printf("结果:%d \n 数据: \n %s",res,fileData)
fmt.Println("=============================")
//小文件推荐一次性读取,这样程序更简单,而且速度最快。
fileData1 ,err := ioutil.ReadAll(file)
check(err)
fileData = string(fileData1)
fmt.Printf("结果: \n 数据: \n %s",fileData)
fmt.Println("=============================")
//加简单的方法
fileData1 ,err = ioutil.ReadFile(filePath)
fileData = string(fileData1)
fmt.Printf("结果: \n 数据: \n %s",fileData)
check(err)
fmt.Println("=============================")
}
func writeFileTest(){
}
func check(err error){
if err != nil{
panic(err)
}
}
func main() {
readFileTest(filePath)
}
注意
go的open操作
对C的open而言,如果flag里面有了O_CREAT,那么必须带上mode参数,制定创建文件时的perm,如果文件已经存在了,这个O_CREAT标志就无效了(除非O_EXCL标志被指定。 除了O_CREAT,还有很多的标志
: //ReadBytes和ReadString都可以实现逐行读取,只要delim设置为’\n’
相信自己,没有做不到的,只有想不到的
微信公众号:终端研发部 ,欢迎一起 交流和学习!