go 创建文件,还有读取字节的内容

package main

import (
	"bytes"
	"fmt"
	"os"
	"path"
)

func main(){
	//读取byte字节文字
	buf1 :=bytes.NewBufferString("hello")
	fmt.Println(buf1)

	buf2 :=bytes.NewBuffer([]byte("hello world"))
	fmt.Println(buf2)

	buf3 :=bytes.NewBuffer([]byte{byte('h'),byte('e'),byte('l'),byte('l'),byte('o')})
	fmt.Println(buf3)

	//写入 string
	btf :=bytes.NewBuffer([]byte{})
	btf.WriteString("写入大花猫")
    fmt.Println(btf.String())

	//写入 []byte
	btf4 :=bytes.NewBuffer([]byte{})
	s :=[]byte("英雄无敌")
	btf4.Write(s)
	fmt.Println(btf4)

	//写入byte
	btf5 :=bytes.NewBuffer([]byte{})
	var b byte='?'
	btf5.WriteByte(b)

    //写入 rune
    var r rune ='小'
    btf5.WriteRune(r)

	mainDirectory, _ := os.Getwd()
	logFilePath := mainDirectory
	logFileName := "1.txt"
	//日志文件
	fileName := path.Join(logFilePath, logFileName)
	//写入文件
	_, err := os.Stat(fileName)
  if !(err==nil || os.IsExist(err)){
	  var err error
	  //目录不存在则创建 创建路径分配权限
	  if _, err = os.Stat(logFilePath); err != nil {
		  if err = os.MkdirAll(logFilePath, 0777); err != nil { //这里如果是0711权限 可能会导致其它线程,读取文件夹内内容出错
			  fmt.Println("Create log dir err :", err)
		  }
	  }
	  //创建文件
	  if _, err = os.Create(fileName); err != nil {
		  fmt.Println("Create log file err :", err)
	  }
  }
    //从文件中写入

             file,err :=os.OpenFile(fileName,os.O_RDWR,0777)

    if err !=nil {
    	fmt.Println(err)
	}

         //写入文件
           w :=[]byte("hello go language" + time.Now().String())
           n,err :=file.Write(w)
           fmt.Println(n,err,string(n))

    fmt.Println(file.Sync())






}

  

 

posted on 2021-12-28 10:00  kevin_yang123  阅读(238)  评论(0编辑  收藏  举报