您的位置 首页 golang

golang写文件的几种操作

 package main

 import  (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)

func testWrite1(filepath string) {
file, err := os.Create(filepath)
checkError(err)
defer file.Close()

file.Write([] byte ("hello world\n"))
file.Write([]byte("测试中文\n"))
file.WriteString("使用 Write String写入文件\n")
}

//使用fmt.Fprintln格式化写入文件
func testWrite2(filepath string) {
file, err := os.Create(filepath)
checkError(err)
defer file.Close()

fmt.Fprintln(file, "hello world")
fmt.Fprint(file, "测试中文\n")
fmt.Fprintln(file, 1, 2, 3)
fmt.Fprintf(file, "name=%s, age=%d\n", "admin", 20)
//hello world
//测试中文
//1 2 3
//name=admin, age=20
}

func testWrite3(filepath string) {
file, err := os.Create(filepath)
checkError(err)
defer file.Close()

writer := bufio.NewWriter(file)
writer.WriteString("hello world\n")
writer.Write([]byte("测试中文\n"))

//在执行完 Write 操作之后,应该要调用 Flush,将内容全部打到文件中去
//否则文件中不会有内容
writer.Flush()
}

func testWrite4(filepath string) {
file, err := os.Create(filepath)
checkError(err)
defer file.Close()

content := `这个是中文
hello world
天下无敌
`

err = ioutil. WriteFile (filepath, []byte(content), os.ModePerm)
checkError(err)
}

//使用文件追加模式写入文件
func  test Write5(filepath string) {
file, err := os.OpenFile(filepath, os.O_RDWR|os.O_APPEND, 0666)
checkError(err)
defer file.Close()

writer := bufio.NewWriter(file)
for i := 0; i < 5; i++ {
writer.WriteString("杭州 浙江\n")
}
writer.Flush()
}

func testCopy() {
src, err := os.Open("1.txt")
checkError(err)
defer src.Close()

reader := bufio.NewReader(src)

dest, err := os.Create("1_copy.txt")
checkError(err)
defer dest.Close()
writer := bufio.NewWriter(dest)

_, err = io.Copy(writer, reader)
checkError(err)
}

func main() {
testWrite1("1.txt")
testWrite2("2.txt")
testWrite3("3.txt")
testWrite4("4.txt")
testWrite5("1.txt")
testCopy()
}

func checkError(err error) {
if err != nil {
panic(err)
}
}
  

文章来源:智云一二三科技

文章标题:golang写文件的几种操作

文章地址:https://www.zhihuclub.com/87028.shtml

关于作者: 智云科技

热门文章

网站地图