• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

GO文件读写01---读文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

打开文件

package main

import (
	"fmt"
	"os"
)

/*
buffer 缓冲区
utility 便利的工具
util 便捷工具(傻瓜式调用)
permission 权限
*/

//便捷的打开文件
func main021() {
	//打开文件,返回文件对象的指针和错误
	filePtr, err := os.Open("F:/BlockChain/code/W2/day4/测试文件")

	//如果有错误,说明打开失败,否则就是打开成功
	if err != nil{
		fmt.Printf("打开文件失败,err=%s",err)

		//结束当前函数
		return
	}else {
		fmt.Println("打开文件成功")
	}

	//文件是IO资源,使用完毕一定要关闭文件,以释放IO资源
	defer func() {
		filePtr.Close()
		fmt.Println("文件已关闭")
	}()

	//打印文件信息
	fmt.Println("filePtr=",filePtr)

}

func main() {
	//file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_RDONLY, 0)
	file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0)
	if err!=nil{
		fmt.Println("文件打开失败,err=",err)
		return
	}else {
		fmt.Println("文件打开成功")
	}
	defer file.Close()
}

缓冲式读文件

package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

func main() {
	file, err := os.OpenFile("F:/BlockChain/code/W2/day4/测试文件", os.O_RDONLY, 0)
	if err != nil{
		fmt.Println("文件打开失败,err=",err)
		return
	}else{
		fmt.Println("文件打开成功")
	}
	//函数返回前,关闭文件,释放io资源
	defer func() {
		file.Close()
		fmt.Println("文件已关闭")
	}()

	//创建文件的缓冲读取器
	reader := bufio.NewReader(file)

	//循环读取数据,以换行符为定界符,直到文件末尾
	for{
		//读取一段字符串,以换行符为定界符
		line, err := reader.ReadString(\'\n\')
		//判断读取是否有错误
		if err != nil{
			fmt.Println("读取失败,err=", err)

			//读到了文件末尾
			if err == io.EOF{
				fmt.Println("已到文件末尾")
				//退出循环
				break
			}
		}else{
			//没有错误读取成功,打印读到的数据
			fmt.Print(line)
		}
	}


	fmt.Println("文件读取结束")
}

使用ioutil包下的API进行便捷的读取

func main() {
	//读取指定文件,获取原始字节,其内部调用了文件的打开与关闭
	bytes, err := ioutil.ReadFile("F:/BlockChain/code/W2/day4/测试文件")
	//判断是否有错误
	if err != nil{
		fmt.Println("文件读取失败,err=",err)
		return
	}else {
		//将原始字节强转为string并输出
		fmt.Println("文件读取成功")
		text := string(bytes)
		fmt.Println(text)
	}
}

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
深入理解Go语言(01): interface源码分析发布时间:2022-07-10
下一篇:
(Go)01.Windows 安装 Go语言开发环境以及使用发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap