go中的IO

通过ioutil读取文件内容
	f, _ := os.Open("./a/b/test.txt")
	//最后步骤关闭文件流(f 实现了Reader)
	defer f.Close()
	r, err := ioutil.ReadAll(f)
	if err != nil {
		fmt.Printf("err:%v \n", err)
	}
	fmt.Printf("读取的内容:%v\n", string(r))

文件中写入一段文字
在这里插入图片描述
读取结果
在这里插入图片描述

通过ioutil遍历文件夹
	f, _ := ioutil.ReadDir("./a/")
	for _, value := range f {
		fmt.Printf("遍历文件夹:%v\n",value.Name())
	}

在这里插入图片描述

通过ioutil写文件读文件
//写文件
func writeFile()  {
	var d1 = []byte("写了内容")
	err:=ioutil.WriteFile("./a/b/test.txt", d1, 0666); //写入文件(字节数组)
	if err !=nil{
		fmt.Printf("%v \n",err)
	}
}

在这里插入图片描述

通过ioutil读文件
func readFile()  {
	data, err := ioutil.ReadFile("./a/b/test.txt")
	if err != nil {
		fmt.Println("%v \n",err)
	}
	fmt.Println("read:", string(data))
}

在这里插入图片描述

通过bufio读取文件

读取一行

	f, _ := os.Open("./a/b/test.txt")
	defer f.Close()
	//用读缓流封装文件读取流
	r := bufio.NewReader(f)
	//w读取的内容,perfix判断是否是前缀
	w, perfix, _ := r.ReadLine()
	//%q 转义字符字面值
	fmt.Printf("用缓存流读文件:%q,%v\n", w,perfix)

通过scanner循环读取
在这里插入图片描述

	f, _ := os.OpenFile("./a/b/test.txt", os.O_RDWR, 777)
	scanner := bufio.NewScanner(f)
	for scanner.Scan() {
		fmt.Println(scanner.Text()) // scanner.Bytes()
	}

在这里插入图片描述

通过bufio按照特殊字符分裂
	s := strings.NewReader("12,34,56")
	br := bufio.NewReader(s)
	w, _ := br.ReadSlice(',')
	fmt.Printf("%q \n",w)
	w1, _ := br.ReadSlice(',')
	fmt.Printf("%q \n",w1)

在这里插入图片描述

通过bufio向文件写内容
 f,_ :=os.OpenFile("./a/b/test.txt",os.O_RDWR,777)
  defer f.Close()
  w := bufio.NewWriter(f)
  w.WriteString("NewWriter")
  w.Flush()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值