Go语言学习笔记之文件读写操作详解
文件操作比较多,分为几篇来写吧。首先是文件的读写,在平时的工程化操作中使用最多。
文件写
样例代码如下
package main import ( "bufio" "fmt" "io" "os" ) //写文件 func DoWriteFile() error { _filePath := "./test.txt" _file, _err := os.OpenFile(_filePath, os.O_WRONLY|os.O_CREATE, 0666) if _err != nil { fmt.Printf("打开文件错误=%v\n", _err) return _err } //提前关闭文件 defer _file.Close() //写入文件 _writer := bufio.NewWriter(_file) _writer.WriteString("hahaha!\n") _writer.Flush() return nil } func main() { DoWriteFile() }
这里使用了os.OpenFile方法,后面的os.O_WRONLY模式会在后面提到。
执行结果
文件读
样例代码如下
package main import ( "bufio" "fmt" "io" "os" ) //读文件 func DoReadFile() error { _filePath := "./test.txt" _file, _err := os.Open(_filePath) if _err != nil { fmt.Printf("打开文件错误=%v\n", _err) return _err } defer _file.Close() _reader := bufio.NewReader(_file) for true { str, err := _reader.ReadString('\n') if err == io.EOF { break } fmt.Println(str) } return _err } func main() { DoReadFile() }
执行结果如下
hahaha!
Process finished with the exit code 0
注意,os.Open方法是以只读模式打开文件。
小结
在使用os.OpenFile方法的时候需要使用到文件模式,文件的打开模式如下:
O_RDONLY int = syscall.O_RDONLY // 只读模式打开文件
O_WRONLY int = syscall.O_WRONLY // 只写模式打开文件
O_RDWR int = syscall.O_RDWR // 读写模式打开文件
O_APPEND int = syscall.O_APPEND // 写操作时将数据附加到文件尾部
O_CREATE int = syscall.O_CREAT // 如果不存在将创建一个新文件
O_EXCL int = syscall.O_EXCL // 和O_CREATE配合使用,文件必须不存在
O_SYNC int = syscall.O_SYNC // 打开文件用于同步I/O
O_TRUNC int = syscall.O_TRUNC // 如果可能,打开时清空文件
到此这篇关于Go语言学习笔记之文件读写操作详解的文章就介绍到这了,更多相关Go语言文件读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
GoLang的sync.WaitGroup与sync.Once简单使用讲解
sync.WaitGroup类型,它比通道更加适合实现这种一对多的goroutine协作流程。WaitGroup是开箱即用的,也是并发安全的。同时,与之前提到的同步工具一样,它一旦被真正的使用就不能被复制了2023-01-01
最新评论