golang快速写入大字符串

package main

import (
	"fmt"
	"io"
	"os"
	"strconv"
	"bytes"
)

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 temp = "http://www.abcd.com/User/L/p/248534-7528,1558,5125,00000752822354311303,1,0 "
	var filename = "./output.txt"
	var f *os.File
	var err1 error
	var buffer bytes.Buffer
	if checkFileIsExist(filename) { //如果文件存在
		f, err1 = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件
		fmt.Println("文件存在")
	} else {
		f, err1 = os.Create(filename) //创建文件
		fmt.Println("文件不存在")
	}
	check(err1)

	for i := 0; true; i++ {
		if i >= 100000 {
			break
		}
		buffer.WriteString(temp + strconv.Itoa(i) + "\n")
	}

	n, err1 := io.WriteString(f, buffer.String()) //写入文件(字符串)
	check(err1)
	fmt.Printf("写入 %d 个字节n", n)

}

 

posted @ 2021-07-30 10:49  程序员小艺  阅读(205)  评论(0编辑  收藏  举报