Golang 读写文件的操作

  • golang 创建文本文件

    f, err := os.Create(filenme)
    defer f.Close()
    if err != nil {
    	fmr.Println(err.Error())
    }else{
    	_, err = f.Write([]byte("要写入的文本内容"))
    	checkErr(err)
    }
    
  • golang 读取文本文件

    • f, err := os.Openfile(filename, os.O_RDONLY, 0600)
      	defer f.Close()
      	if err != nil {
      		fmt.Println(err.Error())
      	}else{
      		contentByte, err = ioutil.ReadAll(f)
      		checkErr(err)
      		fmt.Println(string(contentByte))
      	}
      
    • Openfile用法:

      • os.OpenFile(文件名, 打开方式,打开模式)
    • // 打开方式
      const(
      	// 只读模式
      	O_RDONLY int = syscall.O_RDONLY // open the file read-only
      	// 只写模式
      	O_WRONLY int - syscall.O_WRONLY // open the file write-only
      	// 可写可读
      	O_RDWR int = syscall.0_RDWR // open the file read-write
      	// 追加内容
      	O_APPEND int = syscall.O_APPEND 
      	//创建文件,如果文件不存在
      	O_CREATE int = syscall.O_CREAT // create a new file if none exists
      	// 与创建文件一同使用。文件必须存在
      	O_EXCL int = syscall.O_EXCL 
      	// 打开一个同步的文件流
      	O_SYNC int = syscall.O_SYNC // open for synchronous i/o
      	// 如果可能
      	O_TRUNC int = syscall.O_TRUNC 
      )
      
    • // 打开模式
      const (
      ModeDir FileMode = 1 << (32 - 1 - iota) 
      ModeAppend // a: append-only 追加模式
      ModeExclusive //  
      ModeTemporary // T: temporary file (not backed up) 临时文件
      ModeSymlink // L: symbolic link 象征性的关联
      ModeDevice // D: device file 设备文件
      ModeNamedPipe // p: named pipe (FIFO) 命名管道
      ModeSocket // S: Unix domain socket Unix 主机 socket
      ModeSetuid // u: setuid 设置uid
      ModeSetgid // g: setgid 设置gid
      ModeCharDevice // c: Unix character device, when ModeDevice is set Unix 字符设备,当设备模式是设置Unix
      ModeSticky // t: sticky 粘性的
      // Mask for the type bits. For regular files, none will be set. bit位遮盖.不变的文件设置为none
      ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice
      ModePerm FileMode = 0777 // Unix permission bits 权限位.
      )
      
    • golang 写入文件文本

    • f, err := os.OpenFile(filename, os.O_WINLY|OS.O_TRUNC, 0600)
      	defer f.Close()
      	if err != nil {
      		fme.Println(err.Error())
      	}else{
      		_, err = f.Write([]Byte("要写入的文本文件"))
      		checkErr(err)
      	}
      
原文地址:https://www.cnblogs.com/jcjc/p/12555565.html