golang文件读取介绍
来源:互联网 发布:java读取xml配置文件 编辑:程序博客网 时间:2024/06/08 14:03
golang提供了多种文件读取方式,第一种方式,也是最简单的一种方式,如下:
bytes, err := ioutil.ReadFile("a.txt")if err != nil {panic(err)}fmt.Println(string(bytes))
该种方式需要引入ioutil包,ioutil.ReadFile的入参为文件名,返回值分别是文件内容,和错误信息。
第二种方式需要通过os.Open打开文件,然后通过ioutil.ReadAll来读取,如下:
fin, err := os.Open("a.txt")if err != nil {panic(err)}defer fin.Close()bytes, err := ioutil.ReadAll(fin)if err != nil {panic(err)}fmt.Println(string(bytes))
第二种方式需要同时引入os包和ioutil包,os.Open入参为文件名,返回值分别是文件句柄和错误信息,ioutil.ReadAll入参为io.Reader,因为File实现了io.Reader接口(File支持Read方法),所以fin可以直接转换为io.Reader,返回值和io.ReadFile相同。
第三种方式同样先使用os.Open打开文件,然后使用File的Read方法读取内容,如下:
fin, err := os.Open("a.txt")if err != nil {panic(err)}defer fin.Close()buf := make([]byte, 11)_, err = fin.Read(buf)if err != nil {panic(err)}fmt.Println(string(buf))
与前两种方式不同,该种方式需要自己管理内存。该种方式只需引入os包。
第四种方式同样需要先使用os.Open打开文件,然后创建一个bufio.Reader对象,通过bufio.Reader对象去读取内容,如下:
fin, err := os.Open("a.txt")if err != nil {panic(err)}defer fin.Close()rd := bufio.NewReader(fin)buf := make([]byte, 11)_, err = rd.Read(buf)if err != nil {panic(err)}fmt.Println(string(buf))
该种方式亦需要自己管理内存。表面上看,该种方式多此一举,但实际并非如此,因为bufio.Reader提供了更丰富的处理方法,如ReadLine,ReadString,ReadBytes等,可以减少开发工作。
0 0
- golang文件读取介绍
- Golang 文件读取
- Golang读取文件
- golang 文件读取
- golang 逐行读取文件
- golang按行读取文件
- golang 创建,读取,写入文件
- golang 读取JSON文件(读书笔记)
- [golang]自己动手实现ini文件读取
- Golang(Go语言)读取文件基本用法
- Golang的坑之http读取大文件必须读完
- golang 实时读取日志文件,windows版本的tail
- Golang的坑之http读取大文件必须读完
- Jdom读取xml文件介绍
- stl文件介绍及读取
- golang 读取配置文件
- golang读取文本文件示例
- golang 读取execl数据
- UICollectionViewLayout
- 什么是menuconfig和menuconfig的使用方法和技巧
- mybatis整合mencached
- java se 04
- jQuery 事件
- golang文件读取介绍
- JavaScript实战中会用到的算法
- NoSuchBeanDefinitionException: No qualifying bean of type 错误误区
- U-Boot2010.06移植(2440)-----移植NorFlash驱动
- php的mysql学习(一)
- krpano 全景图在微信里面被屏蔽的解决办法
- 接口返回json串
- Cannot load libphp5.so into server: undefined symbol: __dn_expand
- 构建灵活的 UI -Activity 运行时为 Activity 添加片段