go语言之读取文件

1、定义

计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。

2、打开和关闭文件

os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。

代码展示:

package main

import (
	"fmt"
	"os"
)

func readFromFile1() {
	//只读方式打开当前目录main.go文件
	file, err := os.Open("./main.go")
	if err != nil {
		fmt.Println("open file failed", err)
		return
	}
	defer file.Close()
}
func main() {
	readFromFile1()
}

3、使用read()、bufio、ioutil方法读取文件

package main

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

func readFromFile1() {
	//只读方式打开当前目录main.go文件
	file, err := os.Open("./main.go")
	if err != nil {
		fmt.Println("open file failed", err)
		return
	}
	defer file.Close()
	//使用Read()方法读取数据
	var tmp = make([]byte, 128)
	for {
		n, err := file.Read(tmp[:])
		if err == io.EOF {
			fmt.Println("文件读完了")
			return
		}
		if err != nil {
			fmt.Println("read file failed,err:", err)
			return
		}
		fmt.Printf("读取了%d字节数据\n", n)
		fmt.Println(string(tmp[:n]))
		if n < 128 {
			return
		}
	}
}

//利用bufio这个包读文件
func readFromBufio() {
	//只读方式打开当前目录main.go文件
	file, err := os.Open("./main.go")
	if err != nil {
		fmt.Println("open file failed", err)
		return
	}
	defer file.Close()
	reader := bufio.NewReader(file)
	for {
		line, err := reader.ReadString('\n')
		if err == io.EOF {
			return
		}
		if err != nil {
			fmt.Printf("read line files,err:%v", err)
		}
		fmt.Print(line)
	}
}

//利用ioutil读取整个文件
func readFromUntil() {
	ret, err := ioutil.ReadFile("./main.go")
	if err != nil {
		fmt.Printf("read ret failed,err:%v", err)
		return
	}
	fmt.Println(string(ret))
}
func main() {
	readFromFile1()
	readFromBufio()
	readFromUntil()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值