• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言的文件操作代码汇总

    # 建立与打开文件

    // 新建文件可以通过如下两个方法:

    func Create(name string) (file *File, err Error)

    根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666的文件,返回的文件对象是可读写的。

    func NewFile(fd uintptr, name string) *File

    根据文件描述符创建相应的文件,返回一个文件对象

    // 通过如下两个方法来打开文件:

    func Open(name string) (file *File, err Error)

    该方法打开一个名称为name的文件,但是是只读方式,内部实现其实调用了OpenFile。

    func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

    打开名称为name的文件,flag是打开的方式,只读、读写等,perm是权限

    // 写文件

    func (file *File) Write(b []byte) (n int, err Error)

    写入byte类型的信息到文件

    func (file *File) WriteAt(b []byte, off int64) (n int, err Error)

    在指定位置开始写入byte类型的信息

    func (file *File) WriteString(s string) (ret int, err Error)

    写入string信息到文件

    // 读文件

    func (file *File) Read(b []byte) (n int, err Error)

    读取数据到b中

    func (file *File) ReadAt(b []byte, off int64) (n int, err Error)

    从off开始读取数据到b中

     // 删除文件

    func Remove(name string) Error

    调用该函数就可以删除文件名为name的文件

    ////关闭文件

    func (file *File)Close()

    写文件

    // code_034_os_write_to_file project main.go
    package main
    
    import (
      "fmt"
      "os"
    )
    
    func main() {
    
      //新建文件
      fout, err := os.Create("./createfile.txt")
      if err != nil {
        fmt.Println(err)
        return
      }
      defer fout.Close()
    
      for i := 0; i  5; i++ {
        //备注:windows环境下,结尾\r\n才能换行,linux下\n就可以
        outstr := fmt.Sprintf("%s:%d\r\n", "Hello Go", i) //Sprintf控制台输出,并有返回值string
        // 写入文件
        fout.WriteString(outstr)             //string信息
        fout.Write([]byte("abcd\r\n"))          //byte类型
      }
    }
    
    

    读文件

    // code_035_os_read_from_file project main.go
    package main
    
    import (
      "fmt"
      "os"
    )
    
    func main() {
      fin, err := os.Open("./open_and_read1.txt")
      if err != nil {
        fmt.Println(err) //若文件不存在:The system cannot find the file specified.
      }
      defer fin.Close()
    
      buf := make([]byte, 1024) //创建存储slice
      for {
        n, _ := fin.Read(buf) //读文件
        if n == 0 {
          break
        }
        fmt.Println(string(buf))
      }
    
    }
    
    

    拷贝文件----》(备注:已经创建并写入内容的local_copy_file.txt)终端切换到当前目录下,执行 go run main.go local_copy_file.txt dst_file.txt

    // code_036_os_copy_file project main.go
    package main
    
    import (
      "fmt"
      "io"
      "os"
    )
    
    func main() {
      // 使用命令行提高拷贝的复用性
      args := os.Args
      if args == nil || len(args) != 3 {
        fmt.Println("useage : go filename.go src File dstFile")
        return
      }
    
      srcPath := args[1]
      dstPath := args[2]
      fmt.Printf("srcPath = %s, dstPath = %s\r\n", srcPath, dstPath)
    
      if srcPath == dstPath {
        fmt.Println("源文件和目标文件不能重名")
      }
    
      //执行复制
      srcFile, err1 := os.Open(srcPath)
      if err1 != nil {
        fmt.Println(err1)
        return
      }
      dstFile, err2 := os.Create(dstPath)
      if err2 != nil {
        fmt.Println(err2)
        return
      }
      read_buf := make([]byte, 1024)
      for {
        //读取文件
        n, err := srcFile.Read(read_buf) //每次文件读取字节的长度
        if err != nil  err != io.EOF {
          fmt.Println(err)
          break
        }
        if n == 0 {
          fmt.Println("文件处理完毕")
          break
        }
        //写入目的文件
    
        write_buf := read_buf[:n]
        dstFile.Write(write_buf)
      }
      // 关闭文件
      srcFile.Close()
      dstFile.Close()
    
    }
    

    您可能感兴趣的文章:
    • Go语言range关键字循环时的坑
    • Go语言中http和mysql的实现代码
    • go语言中int和byte转换方式
    • Go语言中的字符串处理方法示例详解
    • Go语言中多字节字符的处理方法详解
    • Go语言实现互斥锁、随机数、time、List
    • Go语言中 Channel 详解
    • go语言中strings包的用法汇总
    • Go语言的JSON处理详解
    • Golang数组的传递详解
    上一篇:golang如何修改json文件内容的方法示例
    下一篇:Go语言的JSON处理详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言的文件操作代码汇总 语言,的,文件,操作,代码,