首页 > 其他分享 >文件写入

文件写入

时间:2023-02-08 21:24:52浏览次数:32  
标签:文件 func err fmt 写入 fileObj main os

os.OpenFile()函数能够以指定的模式打开文件,从而实现文件写入相关功能

核心代码:

func OpenFile(name string, flag int,perm FileMode) (*File, error) {
  ...
}

其中:

name:要打开的文件名 flag:打开文件的模式。模式有以下几种:

  • os.O_WRONLY: 只写
  • os.O_CREATE: 创建文件
  • os.O_RDONLY: 只读
  • os.O_RDWR: 读写
  • os.O_TRUNC: 清空
  • os.O_APPEND: 追加

perm:文件权限,一个八进制数。r(读)04,w(写)02,x(执行)01,此参数在linux中用的比较多,windows中不会用到

创建打开文件设置文件打开权限

package main

import (
  "fmt"
  "os"
)

func main() {
  _, err := os.OpenFile("./xxx.txt", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
  if err != nil {
    fmt.Printf("open file failed, err:%v", err)
    return
  }
  
}

向文件内写入字符串

package main

import (
  "fmt"
  "os"
)

func main() {
//此处的意思为打开文件只写,没有文件则创建,再次执行就向文件内追加字符串
  fileObj, err := os.OpenFile("./xxx.txt", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
  if err != nil {
    fmt.Printf("open file failed, err:%v", err)
    return
  }
  defer fileObj.Close()
  fileObj.Write([]byte("到达世界最高城!理塘!\n"))
  fileObj.WriteString("太美啦理塘!")
}

将追加换位覆盖

package main

import (
  "fmt"
  "os"
)

func main() {
//此处将O_APPEND换为了O_TRUNC
  fileObj, err := os.OpenFile("test.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
  if err != nil {
    fmt.Printf("open file field, err:%v\n", err)
    return
  }
  defer fileObj.Close()
  fileObj.Write([]byte("happy new year!\n"))
  fileObj.WriteString("Suknna")
}

使用bufio来进行写入

package main

import (
  "bufio"
  "fmt"
  "os"
)

func writeDemo1() {
  fileObj, err := os.OpenFile("xxx.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0774)
  if err != nil {
    fmt.Printf("open file field!,err:%v", err)
    return
  }
  defer fileObj.Close()
  //创建一个写的对象
  wr := bufio.NewWriter(fileObj)
  //这里只是把字符串缓存到了wr对象中
  wr.WriteString("蒙古上单")
  //我们需要将缓存写入到文件中
  wr.Flush()
}

func main() {
  writeDemo1()
}

通过ioutil.WriteFile写文件

package main

import (
  "fmt"
  "io/ioutil"
)

func fileDemo() {
  str := "hello world!"
  err := ioutil.WriteFile("./xxx.txt", []byte(str), 666)
  if err != nil {
    fmt.Printf("write file failed, err:%v\n", err)
    return
  }
}
func main() {
  fileDemo()
}

标签:文件,func,err,fmt,写入,fileObj,main,os
From: https://www.cnblogs.com/suknna/p/17103321.html

相关文章