使用ioutil包读写文件
读取文件
//返回的是字节切片
filtByets,err := ioutil.ReadFile("example.txt")
- 返回一个字节切片
- 将返回的字节转换为字符串才能输出
创建文件
err := ioutil.WriteFile("example.txt",b,0644)
- 第一个参数为文件名
- 第二个参数为要写入的数据
- 第三个参数为应用于文件的权限,权限设置以UNIX系统为准
- 如果要创建文件,可以设置
//创建一个空的字符切片进行写入 b= make([]byte,0)
写入文件
s := "Hello,world"
err := ioutil.WriteFile("example.txt",[]byte(s),0644)
列出目录的内容
files,err := ioutil.ReadDir(".")
- 返回一个列表,其中包含按文件名排序的文件。文件名的类型为FiltInfo,包含以下信息
- Name:文件的名称
- Size:文件的长度,单位为字节
- Mode:用二进制位表示的权限
- ModTime:文件最后一个被修改的时间
- IsDir:文件是否是目录
- Sys:底层数据源
files,err := ioutil.ReadDir(".")
for _,file :=range files {
fmt.Println(file.Name())
fmt.Println(file.Size())
}
复制文件
复制文件的步骤
- 打开要复制的文件
- 读取其中的内容弄个
- 创建并打开要将这些内容复制到其中的文件
- 将内容写入这个文件
- 关闭所有已打开的文件
package main
import(
"log"
"os"
"io"
)
func main(){
from,err := os.Open("./text.txt")
if err != nil {
log.Fatal(err)
}
defer from.Close()
to,err := os.OpenFile("./txet2.txt",os.O_RDWR|os.O_CREATE,0666)
if err !=nil{
log.Fatal(err)
}
defer to.Close()
_,err = io.Copy(to,from)
if err !=nil{
log.Fatal(err)
}
}
- 使用Open来读取磁盘文件
- 使用函数OpenFile打开文件,第一参数是要打开的文件名称(如果不存在,就创建);第二个参数是用于文件的标志,在这里指定的是读写文件,并在文件不存在时创建它,最后一个参数设置文件的权限
- 使用io包中的函数Copy复制源文件的内容,并将其写入目标文件
删除文件
err := os.Remove("./deleteme.txt")
使用文件来管理配置
使用JSON文件
可以使用JSON文件来存储配置,这样可以使用Go语言将JSON解码为结构体来进行使用
使用TOML文件
TOML文件是一种专为存储配置文件而设计的格式,相比于JSON,其表达能力更强,且更容易映射到Go类型。JSON是为序列化数据而设计的,而TOML是专门为存储配置文件而设计的
Name = "George"
Awake = true
Hungry = false
可以下载第三方包来解析TOML
go get github.com/BurntSushi/toml
//创建空结构体
c := Config()
_,err := toml.DecodeFile("config.toml",&c)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容