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

go文件读取

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

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

func main() {
	//只读方式打开文件
	file ,err := os.Open("./main.go")
	if err != nil {
		fmt.Println(err)//打开文件失败
		return
	}
	defer file.Close() //操作完成之后关闭文件流
	fmt.Println(file)

	//读取文件内容 --方法一
	var strSilce []byte
	var tempSilce = make([]byte,128) //每次读取128个字节
	for {
		n,err := file.Read(tempSilce)  //返回读取的字节数   读取的内容放在tempSilce切片中
		if err == io.EOF{ //表示读取完毕
			fmt.Println("读取完成")
			break
		}
		if err != nil{
			fmt.Println(err) //读取文件失败
			return
		}
		fmt.Println(n)
		strSilce = append(strSilce,tempSilce[:n]...) //tempSilce[:n]  读取了多少个字节 就拿切片里面多少个字节 (考虑场景最后有不足字节的情况)
	}
	fmt.Println(string(strSilce)) //切片转字符串

	//读取文件内容 --方法二(bufio)
	var fileStr string
	reader := bufio.NewReader(file)
	for {
		str ,err := reader.ReadString('\n') //\n为分隔符 表示一次读取一行
		if err == io.EOF{
			fileStr += str //读取完成 可能还有返回值
			fmt.Println("读取完成")
			break
		}
		if err != nil {
			fmt.Println(err)
		}
		fileStr += str
	}

	fmt.Println(fileStr)

	//读取文件内容 --方法三(ioutil) 不需要os.open (其他两种都是以文件流的形式读取  这个不是)
	byteStr,err := ioutil.ReadFile("./main.go")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(byteStr))

}

  


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
GO语言系列之 初识go语言发布时间:2022-07-10
下一篇:
为 Java 程序员准备的 Go 入门 PPT发布时间: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