zoukankan      html  css  js  c++  java
  • Golang简单写文件操作的四种方法

    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
    }
    
    /**
      from: http://www.isharey.com/?p=143
    */
    
    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()
    }
    

      

  • 相关阅读:
    luogu P3801 红色的幻想乡
    [USACO07OPEN]吃饭Dining
    [SCOI2007]蜥蜴
    [SDOI2011]染色
    [USACO07DEC]Sightseeing Cows
    [HNOI2007]紧急疏散EVACUATE
    [ZJOI2009]假期的宿舍
    [SDOI2013]费用流
    [CQOI2009]跳舞
    使用chrony安装chrony
  • 原文地址:https://www.cnblogs.com/shiluoliming/p/8312928.html
Copyright © 2011-2022 走看看