代码改变世界

65_磁盘文件的使用

2019-10-05 23:12  StevenZhao  阅读(130)  评论(0编辑  收藏  举报
package main

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

func WriteFile(path string) {

//创建一个文件,并返回文件的头指针
f, err := os.Create(path)
if err != nil {
fmt.Println("err=", err)
return
}

defer f.Close() //最后使用完后,关闭文件

var buf string

for i := 0; i < 10; i++ {
//将 i=%d\n 这个字符串存储到buf中,把换行也写进去了
buf = fmt.Sprintf("i=%d\n", i) //换行输入
//buf = fmt.Sprintf("i=%d\t", i)//写在一行,每个字之间有一个tab空格

//写入信息到文件中,返回写入的字节的总数,和可能出现的错误
n, err := f.WriteString(buf)
if err != nil {

fmt.Println("err=", err)

}
fmt.Println("n=", n) //打印写入字节的大小

}

}

func ReadFile(path string) {
//打开文件
f, err := os.Open(path)
if err != nil {

fmt.Println("err=", err)
return
}
defer f.Close()
buf := make([]byte, 1024*2) //2k的大小
//n:是读取数据的大小;把读取的数据放入到buf 字节切片中
n, err1 := f.Read(buf)
//fmt.Println("n=", n)//40字节
if err1 != nil && err1 != io.EOF { //文件出错,同时没有到文件结尾
fmt.Println("err=", err)
return
}
fmt.Println("buf=", string(buf[:n])) //n:表示全部转换
}

//每次读取一行.用bufio包

func main() {
var path string = "./test.txt"
WriteFile(path)
ReadFile(path)

}