Go语言读取文件内容

简介

读取文件内容在每个语言里面都有,go语言中主要注意文件读完后会返回一个异常 io.EOF,根据这个异常去判断就可以了

代码实现

go 复制代码
package main

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

func main() {
	lines := Read("test.txt")
	for _, line := range lines {
		fmt.Println(line)
	}
}

// ReadFile 文件读取操作
// 按行读取文件
func ReadFile(file io.Reader) []string {
	var result []string
	reader := bufio.NewReader(file)
	for {
		line, _, err := reader.ReadLine()

		if err != nil && err != io.EOF {
			panic(err)
		}
		if err == io.EOF { //读取完了
			break
		}

		result = append(result, string(line))

	}
	return result
}

func Read(fileName string) []string {

	file, err := os.Open(fileName)
	if err != nil {
		panic(err)
	}
	defer file.Close()
	return ReadFile(file)
}

func ReadBytes(fileName string) []byte {
	data, err := os.ReadFile(fileName)
	if err != nil {
		return nil
	}
	return data
}

测试

shell 复制代码
$ cat test.txt 
hello shura
end

执行程序,输出

text 复制代码
hello shura
end

总结

以上就是go读取文件内容的代码了,平时作为自己的一个小工具库用


欢迎关注,学习不迷路!

相关推荐
蚰蜒螟9 分钟前
从 pthread_create 到 thread_native_entry:glibc 如何唤醒 Java 线程
java·开发语言
We་ct12 分钟前
LeetCode 300. 最长递增子序列:两种解法从入门到优化
开发语言·前端·javascript·算法·leetcode·typescript
gCode Teacher 格码致知14 分钟前
Python提高: unittest和 pytest的使用方法-由Deepseek产生
开发语言·python·pytest
迷茫运维路20 分钟前
云枢运维管理系统
运维·golang·kubernetes·gin·casbin
Johnstons31 分钟前
网络可观测性落地指南:从“出了问题才排查“到“实时感知全网状态“
开发语言·网络·php
️是7837 分钟前
信息奥赛一本通—编程启蒙(3371:【例64.2】 生日相同)
开发语言·c++·算法
Kiling_070439 分钟前
Java Math类核心用法全解析
java·开发语言
jieyucx42 分钟前
Go 语言运算符与控制台输入输出详解
开发语言·后端·golang
Ulyanov1 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio的定位革命与技术架构
开发语言·python·qt·系统仿真·雷达电子对抗仿真
iiiiyu1 小时前
常用API(StringJoiner类 & Math类 & System类)
java·大数据·开发语言·数据结构·编程语言