各位朋友你们好,欢迎来到Go说。
今天我们来看看如何用 Go 语言来对文件进行一些基本的处理。
一、获取某个目录下的所有文件
package main
import (
"io/ioutil"
"fmt"
)
func main() {
// 读取当前目录中的所有文件和子目录
files, err := ioutil.ReadDir(`D:/`)
if err != nil {
panic(err)
}
// 获取文件名组成的切片,并遍历打印每一个文件名
for _, file := range files {
fmt.println(file.Name())
}
}
二、读取文本文件并输出内容
package main
import (
"io/ioutil"
"fmt"
)
func main() {
// 读取文本文件的内容
txt, err := ioutil.ReadFile(`test.txt`)
defer txt.Close()
if err != nil {
panic(err)
}
// 将字节流转换为字符串
content := string(txt)
// 输出文本内容
fmt.println(content)
}
三、将字符串保存成文件
package main
import (
"io/ioutil"
"fmt"
)
func main() {
// 将保存的字符串转换为字节流
str := []byte(`要保存入文件的字符串`)
// 保存到文件
ioutil.WriteFile(`保存文件的文件名.txt`, str, 0666)
}
四、文件追加内容
package main
import
("os"
func main() {
// 要追加的字符串
str := []byte("\n" + `这是要追加在末尾的话`)
// 以追加模式打开文件
txt, err := os.OpenFile(`test.txt`, os.O_APPEND, 0666)
// 以追加模式打开文件,当文件不存在时生成文件
// txt, err := os.OpenFile(`test.txt`, os.O_APPEND|os.O_CREATE, 0666)
defer txt.Close()
if err != nil {
panic(err)
}
// 写入文件
n, err := txt.Write(str)
// 当 n != len(str) 时,返回非零错误
if err == nil && n != len(str) {
fmt.println(`错误代码:`, n)
panic(err)
}
}
五、关于Excel
给大家推荐一个用 Go 操作 Excel 的库:Excelize。
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。
关于 Excelize 的各种好用的方法,我打算单独写一篇文章,和大家分享。
谢谢你的阅读!欢迎关注我的微信公众号:Go说,和我一起快乐学 Go!