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


欢迎关注,学习不迷路!

相关推荐
可可格子衫5 分钟前
257. 二叉树的所有路径(js)
开发语言·javascript·ecmascript
伍哥的传说9 分钟前
前端适配方案之 flexible.js 到 postcss-px-to-viewport-8-plugin插件演进
开发语言·前端·javascript·小程序·ecmascript·postcss
微信公众号:AI创造财富36 分钟前
pyenv 是什么?conda 是什么?解决了什么问题?
linux·开发语言·python
十五年专注C++开发1 小时前
CMake实践:指定gcc版本编译和交叉编译
linux·开发语言·c++·cmake·自动化编译
勤奋的知更鸟1 小时前
Matplotlib 绘图库使用技巧介绍
开发语言·python·matplotlib
上位机付工2 小时前
C#上位机通过WebApi访问WinCC
开发语言·c#·上位机·webapi·wincc
微信公众号:AI创造财富7 小时前
conda create -n modelscope python=3.8 conda: command not found
开发语言·python·conda
鱼会上树cy7 小时前
空间解析几何10:三维圆弧拟合【附MATLAB代码】
开发语言·matlab
IT艺术家-rookie7 小时前
golang--channel的关键特性和行为
开发语言·后端·golang
Cyrus_柯10 小时前
C++(面向对象编程——关键字)
开发语言·c++·算法·面向对象