zoukankan      html  css  js  c++  java
  • 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()
    }
  • 相关阅读:
    JAVA获取随机数
    web路径问题
    java.lang.IllegalStateException: Failed to load ApplicationContext,这个异常的解决方案
    使用表达式配置切入点
    Spring的aop操作
    AOP操作术语
    AOP原理
    AOP概念
    spring知识点
    Spring的ioc操作 与 IOC底层原理
  • 原文地址:https://www.cnblogs.com/forgo/p/15090407.html
Copyright © 2011-2022 走看看