Golang逐行读取文本文件

当文件过大,不适合一次性载入内存,且文件每行都包含特定信息时,我们就需要逐行读取文件来保证程序的性能;

示例代码:

package main
 
import (
	"fmt"
	"os"
	"bufio"
)

func main() {

	fp,err := os.Open("file.txt")
	if err!=nil{
		fmt.Println(err) //打开文件错误
		return 
	}
	buf := bufio.NewScanner(fp)
	for {
		if !buf.Scan() {
			break //文件读完了,退出for
		}
		line := buf.Text() //获取每一行
		fmt.Println(line)	
	}
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/golang-read-file-line-by-line.html

分类: 计算机技术
推荐阅读:
使用vim编辑文件时添加密码保护 当你使用vim编辑器编辑一个文件时,可以使用一条命令即可实现向该文件添加一个密码保护;如果输入的密码错误,将无法正确打开文件,得到的是乱码;
Golang中如何使用go test进行单元测试 单元测试的意义在这里就不多说了;本文将示范如何在Go语言环境下使用go test进行简单的单元测试。
使用MATLAB画一个爱心 以下是在 MATLAB 中绘制一个简单的爱心的示例代码:
Python super()函数 super() 函数用于调用父类的方法。当子类重写了父类的方法后,如果想要在子类中调用父类的方法,就可以使用 super() 函数。使用 super() 函数可以避免硬编码父类的名称,使代码更具可读性和可维护性。
Implementation of the USB 2.0 controller not found!解决方案 你可能在使用VirtualBox启动虚拟机系统时碰到“不能为虚拟电脑打开一个新的任务”的错误提示,并提示 Implementation of the USB 2.0 controller not found!
requests使用代理进行网络请求 requests支持HTTP、HTTPS、SOCKS等代理请求;如果要使用HTTP代理或HTTPS代理,你可以在任意请求方法中传入proxies参数来配置单个请求: