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读取文件内容的代码了,平时作为自己的一个小工具库用


欢迎关注,学习不迷路!

相关推荐
yaoxin52112310 分钟前
328. Java Stream API - 使用 Optional 的正确姿势:为何、何时、如何使用
java·开发语言
岱宗夫up11 分钟前
从代码模式到智能模式:AI时代的设计模式进化论
开发语言·python·深度学习·神经网络·自然语言处理·知识图谱
我命由我1234519 分钟前
Visual Studio 文件的编码格式不一致问题:错误 C2001 常量中有换行符
c语言·开发语言·c++·ide·学习·学习方法·visual studio
MR_Promethus21 分钟前
【C++类型转换】static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
再难也得平22 分钟前
[LeetCode刷题]49.字母异位词分组(通俗易懂的java题解)
java·开发语言·leetcode
黎雁·泠崖27 分钟前
Java 时间类(中):JDK8 全新时间 API 详细教程
java·开发语言
kong790692839 分钟前
Python核心语法-Matplotlib简介
开发语言·python·matplotlib
mjhcsp42 分钟前
C++数位 DP解析
开发语言·c++·动态规划
Coder_Boy_1 小时前
Java高级_资深_架构岗 核心知识点——高并发模块(底层+实践+最佳实践)
java·开发语言·人工智能·spring boot·分布式·微服务·架构
小龙报1 小时前
【算法通关指南:数据结构与算法篇】二叉树相关算法题:1.二叉树深度 2.求先序排列
c语言·开发语言·数据结构·c++·算法·贪心算法·动态规划