go语言---输出流Writer

go语言—输出流Writer
  1. 输出流(Output Stream)就是将应用程序中的数据写出到外部资源;
  2. go语言中io包下的Writer接口表示输出流,只要实现这个接口就属于输出流;
  3. Writer的源码:
    type Writer interface {
    	Write(p []byte) (n int, err error)
    }
    
  4. 注意构建字节切片的时候如果需要读取文件,不要使用os.Open(),因为这种方式获取的文件是只读的,无法写入;需要使用os.OpenFile();
  5. os.OpenFile(name string, flag int, perm FileMode)的参数:name:文件名, flag:操作方式, perm:文件权限;
  6. 其中perm参数:共4位,第一位总为0,第二位表示是否可读,第3位表示是否可写;第4位表示是否可执行; 例如:0000 不可读写 不可执行; 0001 不可读写 可执行; 0010 可写不可读,不可执行; 0100 可读不可写,不可执行;由于是二进制表示,所以可以将其转化为10进制的数值,比如0100可以转化为4, 01117,01106;也可以记作: 4读2写1执行; 最多不大于7,在表示权限的时候可以使用8进制,来区分用户/用户组/其他用户的分别权限;比如0764表示文件所属用户可读可写可执行,用户组其他用户仅可读可写,其他非用户组用户仅可读;
  7. 写入文件中的特殊字符,\r\n换行,\t制表符,

package main

import (
	"fmt"
	"os"
)

func main() {
	goWriter()
}

func goWriter() {
	f, err := os.OpenFile("goWriter.txt", os.O_APPEND, 0764)
	defer f.Close()  // 记得打开流之后要关闭流
	if err != nil {
		fmt.Println("文件不存在,正在创建文件")
		f, _ = os.Create("goWriter.txt")
	}
	fmt.Println("文件打开成功")
	f.Write([]byte("要写入的内容1\r\n要写入的内容2\r\n\t要写入的内容3\r\n"))
	f.WriteString("这一行是使用`f.WriteString()`写入的\r\n")

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值