Go语言文件读写
剑客阿良_ALiang 人气:0文件操作比较多,分为几篇来写吧。首先是文件的读写,在平时的工程化操作中使用最多。
文件写
样例代码如下
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 // 如果可能,打开时清空文件
加载全部内容