前端之家收集整理的这篇文章主要介绍了
go 文件操作,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package main
import (
"os"
"io"
"io/IoUtil"
"fmt"
"bufio"
)
var filename = "./output1.txt"
var f *os.File
var err1 error
/**
创建文件夹
*/
func mkDir(descname string) error {
return os.Mkdir(descname,os.ModeDir)
}
/**
* 判断文件是否存在 存在返回 true 不存在返回false
*/
func checkFileIsExist(filename string) (bool) {
var exist = true
if _,err := os.Stat(filename); os.IsNotExist(err) {
exist = false
}
return exist
}
/**
第一种方式: 使用 io.WriteString 写入文件
*/
func write_io_WriteString() {
if checkFileIsExist(filename) {
// 如果文件存在,则只打开文件
f,err1 = os.OpenFile(filename,os.O_APPEND | os.O_RDWR,0666) // os.O_APPEND | os.O_RDWR 既有读写也有append属性
} else {
f,err1 = os.Create(filename)
}
check(err1)
io.WriteString(f,"第一个:\n")
f.Sync()
//f.Close()
}
/**
第二种方式: 使用 IoUtil.WriteFile 写入文件
*/
func write_IoUit_writeFIle() {
var bt = []byte("第二个:\n")
// 会覆盖掉文件原内容
err2 := IoUtil.WriteFile(filename,bt,0666)
check(err2)
}
/**
第三种方式: 使用 File(Write,WriteString) 写入文件
*/
func write_File() {
var bt = []byte("第三个:\n")
f,err3 := os.OpenFile(filename,0666) //创建文件
check(err3)
defer f.Close()
c,err3 := f.Write(bt) //写入文件(字节数组)
fmt.Printf(string(c))
check(err3)
f.Sync()
f.Close()
}
/**
第四种方式: 使用 bufio.NewWriter 写入文件
*/
func write_bufio_write() {
w := bufio.NewWriter(f) //创建新的 Writer 对象
n4,err3 := w.WriteString("第四个:\n")
fmt.Printf("写入 %d 个字节n",n4)
w.Flush()
check(err3)
f.Sync()
f.Close()
}
func main() {
//e := mkDir("sff")
//check(e)
write_io_WriteString()
//write_IoUit_writeFIle()
write_File()
write_bufio_write()
}
func check(e error) {
if e != nil {
panic(e)
}
}
原文链接:https://www.f2er.com/go/187609.html