go——file文件读写的操作

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’

相信自己,没有做不到的,只有想不到的

微信公众号:终端研发部 ,欢迎一起 交流和学习!

技术+职场

猜你喜欢

转载自blog.csdn.net/androidstarjack/article/details/83869054