读写数据-GO高级编程

处理缓冲的输入和输出
用到的主要包:fmt、os、bufio

1、fmt包读取输入
fmt.Scanln
fmt.Scanln(&firstName, &lastName)
扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。

fmt.Scanf
fmt.Scanf("%s %s", &firstName, &lastName)
除了第一个参数用作格式字符串,决定如何读取,其它和Scanln一样

fmt.Sscanf
fmt.Sscanf(input, “%s %s”, &firstName, &lastName)
Sscan以及Sscan开头的都是从字符串读取
从字符串读取,除此之外,与Scanf一样

2.bufio包缓冲读取
将读取器与标准输入绑定
func NewReader(rd io.Reader) *Reader
该函数的实参可以满足任何实现了io.Reader接口的对象,返回一个带缓冲的io.Reader对象,它将从指定读取器读取内容

3.读文件
》文件使用指向os.File类型的指针来表示,也叫文件句柄。例如os.Stdin、os.Stdout
使用bufio来创建文件读取器

》将整个文件的内容读取到一个字符串里,使用io/ioutil包
ioutil.ReadFile()

带缓冲的读取
切片提供了Go中处理I/O缓冲的标准方式

在很多情况下,文件的内容是不按行划分的,或者干脆就是一个二进制文件,在这种情况下,ReadString()这种函数就无法使用了,

buf := make([]byte, 1024)
...
n, err := inputReader.Read(buf)
if (n == 0) { break}

》按列读取文件中的内容
fmt包的Fscan开头的一些函数

》go中惯用的写法
defer f.Close() 程序结束前关闭文件

4.写文件
fmt.Fprintf()
func Fprintf(w io.Writer, format string, a …interface{}) (n int, err error)
依据指定的格式向第一个参数内写入字符串,第一个参数必须实现了io.Writer接口
Fprintf能够写入任何类型,只要其实现了Write方法,包括os.Stdout,os.File,管道,网络链接,通道等,还有bufio包中的缓冲写入

5.path
包里包含一个子包叫 filepath,这个子包提供了跨平台的函数,用于处理文件名和路径

6.copy文件
使用到io.copy

7.从命令行读取参数
os包中包含一个string类型的切片变量os.Args,用来处理一些基本的命令行参数,在程序启动的时候,读取命令行输入的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值