Golang的os包是用于与操作系统进行交互的包,提供了一系列函数和类型,可以用于执行操作系统相关的任务,如文件操作、进程管理、环境变量等。 该包中的一些常用函数和类型包括:
os.Args:获取命令行参数。os.Exit:终止当前程序并返回指定的退出状态码。os.Getwd:获取当前工作目录。os.Chdir:改变当前工作目录。os.Mkdir:创建一个新目录。func MkdirAll(path string, perm FileMode) error:使用指定的权限和名称创建一个文件夹,并自动创建父级目录(对于linux的mkdir -p目录)
常用方法:
func Create(name string) (file *File, err error):创建一个新文件。func Open(name string) (file *File, err error):打开一个文件用于读取。func OpenFile(name string, flag int, perm FileMode) (file *File, err error):更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数func Remove(name string) error:Remove删除name指定的文件或目录。func RemoveAll(path string) error:删除path指定的文件,或目录及它包含的任何下级对象。func Rename(oldpath, newpath string) error:重命名文件或目录。
以上是比较常用的方法。
os.Stdin、os.Stdout、os.Stderr:标准输入、标准输出和标准错误输出。os.Environ:获取当前环境变量。os.Getenv:获取指定的环境变量的值。os.Setenv:设置指定的环境变量的值。func Chmod(name string, mode FileMode) error:修改name文件或文件夹的权限(对应linux的chmod命令)func Chown(name string, uid, gid int) error:修改name文件或文件夹的用户和组(对应linux的chmod命令)
同时os包中提供了一个os.File的结构体。该结构体实现了io包中的reader,writer接口,所以可以直接可以用进行io操作来读写。
比如我们打开了一个文件,想读取文件中的全部内容,我们可以使用os.File自身实现的read方法也可以使用ioutil或者bufio包中的方法。
实例:
import(
"os"
"io/ioutil"
"bufio"
"log"
)
func test(){
file,err:=os.Open("./hello.txt") //返回的file是os.File类型
if err != ni {
log.Fatal(err)
}
b, err := ioutil.ReadAll(file)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(b))
}
func test(){
file,err:=os.Open("./hello.txt") //返回的file是os.File类型
if err != ni {
log.Fatal(err)
}
bufreader := bufio.NewReader(file)
for {
line, _, err := bufreader.ReadLine()
if err == io.EOF {
break
}
fmt.Println(string(line))
}
}