Golang文件操作

写文件

  os模块可以创建文件,使用fmt可以写入文件。如以下例子:

复制代码
package main

import (
	"fmt"
	"os"
)

func main() {
	// 学习 golang的文件操作
	file, err := os.Create("test.txt")
	if err != nil {
		fmt.Println("文件创建失败", err)
	}
	_, err = fmt.Fprintln(file, "hello world")
	if err != nil {
		return
	}
	err = file.Close()
	if err != nil {
		fmt.Println("文件关闭失败", err)
	}
}

读文件

  读文件可以用bufio模块,利用Scanner进行逐行读取。如以下例子:

go 复制代码
package main

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

func main() {
	// WriteFile()
	file, err := os.Open("test.txt")
	if err != nil {
		fmt.Println(err) // 文件打开失败
	}
	defer func(file *os.File) {
		err := file.Close()
		if err != nil {
			fmt.Println(err)
		}
	}(file)
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}
	if err := scanner.Err(); err != nil {
		fmt.Println(err) // 读取文件失败
	}
}
相关推荐
名字还没想好☜3 分钟前
Go 用 bufio.Scanner 读大文件踩坑:默认 64KB 行上限、Buffer 扩容与按 Token 切分
开发语言·后端·golang·go
用户60830892904733 分钟前
SpringBoot自定义注解校验
后端
董员外35 分钟前
RAG 系统进化论(六):GraphRAG(基于知识图谱的 RAG),从相似文本走向实体关系
人工智能·后端·设计模式
Conan在掘金35 分钟前
ArkTS 进阶之道(31):状态联动深水区收官边界——为啥四级状态容器 + V1/V2 双轨是状态联动深水区收官根因
后端
Conan在掘金37 分钟前
鸿蒙 7.0 空间美学开篇:沉浸式毛玻璃 + 底部 Sheet 面板——一行 backgroundBlurStyle 玩出物理材质感
后端
Java编程爱好者40 分钟前
R2DBC vs JDBC:Spring Boot 响应式项目该怎么选
后端
AskHarries1 小时前
Sitemap 怎么自动生成
后端
神奇小汤圆1 小时前
深入 Java 线程池:从源码原理、生产调优到故障排查全链路指南
后端
Byron Loong1 小时前
【C++】重定向是什么
开发语言·c++
Conan在掘金1 小时前
ArkTS 进阶之道(30):@Track 精准观测边界——为啥 class 属性级观测只刷关联 UI 根因
后端