【golang】利用fmt包的scanf()方法把文件里面内容映
2020-04-13 本文已影响0人
dongzd
问题
在项目中,我们可能把一些数据存储在文件中当元数据,这些文件不像yml、json等文件有一定解码规则,如自定义一个txt文件,里面有:
东哥
27
苏州
我们想直接读取处理,赋予指定的变量,传统方式利用read一行一行读取,指定读取的分隔符去对应变量,这种方式繁琐且遇到复制的txt格式很难处理,本文介绍使用fmt.Fscanf方法:
var name string
var age uint32
var area string
f, err := os.OpenFile("test.txt", os.O_RDONLY, 0600)
if err != nil {
panic("文件打开失败")
}
defer f.Close()
// "%s\n%d\n%s" 为txt中内容格式,根据实际情况而定
_, errf := fmt.Fscanf(f, "%s\n%d\n%s", &name, &age, &area)
if errf != nil {
panic("映射失败")
}
fmt.Println(name, age, area)
输出:
东哥 27 苏州