• golang 写文件4种方式


    package main
    
    import (
    	"bufio" //缓存IO
    	"fmt"
    	"io"
    	"io/ioutil" //io 工具包
    	"os"
    )
    
    func check(e error) {
    	if e != nil {
    		panic(e)
    	}
    }
    
    /**
     * 判断文件是否存在  存在返回 true 不存在返回false
     */
    func checkFileIsExist(filename string) bool {
    	var exist = true
    	if _, err := os.Stat(filename); os.IsNotExist(err) {
    		exist = false
    	}
    	return exist
    }
    
    func main() {
    	var wireteString = "测试n"
    	var filename = "./output1.txt"
    	var f *os.File
    	var err1 error
    	/***************************** 第一种方式: 使用 io.WriteString 写入文件 ***********************************************/
    	if checkFileIsExist(filename) { //如果文件存在
    		f, err1 = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件
    		fmt.Println("文件存在")
    	} else {
    		f, err1 = os.Create(filename) //创建文件
    		fmt.Println("文件不存在")
    	}
    	check(err1)
    	n, err1 := io.WriteString(f, wireteString) //写入文件(字符串)
    	check(err1)
    	fmt.Printf("写入 %d 个字节n", n)
    
    	/*****************************  第二种方式: 使用 ioutil.WriteFile 写入文件 ***********************************************/
    	var d1 = []byte(wireteString)
    	err2 := ioutil.WriteFile("./output2.txt", d1, 0666) //写入文件(字节数组)
    	check(err2)
    
    	/*****************************  第三种方式:  使用 File(Write,WriteString) 写入文件 ***********************************************/
    	f, err3 := os.Create("./output3.txt") //创建文件
    	check(err3)
    	defer f.Close()
    	n2, err3 := f.Write(d1) //写入文件(字节数组)
    	check(err3)
    	fmt.Printf("写入 %d 个字节n", n2)
    	n3, err3 := f.WriteString("writesn") //写入文件(字节数组)
    	fmt.Printf("写入 %d 个字节n", n3)
    	f.Sync()
    
    	/***************************** 第四种方式:  使用 bufio.NewWriter 写入文件 ***********************************************/
    	w := bufio.NewWriter(f) //创建新的 Writer 对象
    	n4, err3 := w.WriteString("bufferedn")
    	fmt.Printf("写入 %d 个字节n", n4)
    	w.Flush()
    	f.Close()
    }
  • 相关阅读:
    HTTP协议
    优化特定类型的查询
    Feign性能优化注意事项
    Spring Cloud(Netflix) Feign: 以Dubbo暴露服务的方式使用Feign
    Swagger注解
    Myeclipse、eclipse安装lombok
    微服务和单体架构的区别以及springClould版本的说明
    索引优化是对查询性能优化最有效的手段
    Schemal和数据类型的优化
    spring定时器的使用
  • 原文地址:https://www.cnblogs.com/forgo/p/15090407.html
Copyright © 2020-2023  润新知