go 文件操作
发布时间:2020-12-16 09:42:01 所属栏目:大数据 来源:网络整理
导读:Golang简单写文件操作的四种方法 package mainimport ("os""io""io/ioutil""fmt""bufio")var filename = "./output1.txt"var f *os.Filevar err1 error/**创建文件夹*/func mkDir(descname string) error {return os.Mkdir(descname,os.ModeDir)}/** * 判断
Golang简单写文件操作的四种方法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) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |