Go语言学习笔记之文件读写操作详解

 更新时间:2022年05月24日 10:33:05   作者:剑客阿良_ALiang  
这篇文章主要为大家详细介绍了Go语言对文件进行读写操作的方法,文中的示例代码讲解详细,对我们学习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语言文件读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go Resiliency库中timeout实现原理及源码解析

    Go Resiliency库中timeout实现原理及源码解析

    Go-Resiliency库中的timeout是一种基于协程的超时机制,通过创建协程来执行任务并设置超时时间,若任务执行时间超时则中止协程并返回错误,需要详细了解可以参考下文
    2023-05-05
  • Golang中Gin框架的使用入门教程

    Golang中Gin框架的使用入门教程

    这篇文章主要为大家详细介绍了Golang中Gin框架的使用教程,文中通过简单的示例为大家讲解了Gin框架的安装与使用,感兴趣的小伙伴开业跟随小编一起学习一下
    2022-10-10
  • Go语言实现JSON解析的方法详解

    Go语言实现JSON解析的方法详解

    在日常项目中,使用Json格式进行数据封装是比较常见的操作。本文将详细讲解如何利用Go语言实现JSON的解析,感兴趣的小伙伴可以学习一下
    2022-04-04
  • gORM操作MySQL的实现

    gORM操作MySQL的实现

    本文主要介绍了gORM操作MySQL的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • golang跳转语句goto,break,continue的使用及区别说明

    golang跳转语句goto,break,continue的使用及区别说明

    这篇文章主要介绍了golang跳转语句goto,break,continue的使用及区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Golang如何快速构建一个CLI小工具详解

    Golang如何快速构建一个CLI小工具详解

    这篇文章主要为大家介绍了Golang如何快速构建一个CLI小工具详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Go语言切片前或中间插入项与内置copy()函数详解

    Go语言切片前或中间插入项与内置copy()函数详解

    这篇文章主要介绍了Go语言切片前或中间插入项与内置copy()函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 详解Golang使用MongoDB通用操作

    详解Golang使用MongoDB通用操作

    这篇文章主要介绍了详解Golang使用MongoDB通用操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Go语言结构体Go range的学习教程

    Go语言结构体Go range的学习教程

    这篇文章主要为大家介绍了Go语言结构体Go range的学习教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • golang中defer的使用规则详解

    golang中defer的使用规则详解

    大家应该都知道在golang当中,defer代码块会在函数调用链表中增加一个函数调用。下面这篇文章主要给大家介绍了关于golang中defer的使用规则,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07

最新评论