golang文件操作
发布时间:2020-12-16 19:13:03 所属栏目:大数据 来源:网络整理
导读:go 文件的相关操作函数在 os 包下,可以查看os包官方文档来学习。 创建文件并写入内容 创建文件和写入需要用到两个函数: func Create(name string) (*File,error) func (f *File) Write(b []byte) (n int,err error) 具体的代码如下: package mainimport (
创建文件并写入内容创建文件和写入需要用到两个函数: func Create(name string) (*File,error) func (f *File) Write(b []byte) (n int,err error) 具体的代码如下: package main import ( "log" "os" ) func main() { file,createErr := os.Create("/Users/deweixu/demo.txt") if createErr != nil { log.Fatal(createErr) } _,writeErr := file.Write([]byte("创建一个文件,并写入内容。")) if writeErr != nil { log.Fatal(writeErr) } closeErr := file.Close() if closeErr != nil { log.Fatal(closeErr) } }
读取文件内容package main import ( "fmt" "log" "os" ) func main() { //打开文件 file,err := os.Open("/Users/deweixu/demo.txt") if err != nil { log.Fatal(err) } //创建一个缓冲区,每次读取1024 byte buf := make([]byte,1024) for { len,readErr := file.Read(buf) if len == 0 { break } if readErr != nil { log.Fatal(err) } fmt.Printf("%s",string(buf)) } fmt.Print("n") }
复制文件package main import ( "log" "os" ) func main() { //创建一个新文件 dstFile,createErr := os.Create("/Users/deweixu/demo-cp.txt") if createErr != nil { log.Fatal(createErr) } //打开源文件 srcFile,openErr := os.Open("/Users/deweixu/demo.txt") if openErr != nil { log.Fatal(openErr) } //创建一个缓冲区,readErr := srcFile.Read(buf) if len == 0 { break } if readErr != nil { log.Fatal(readErr) } _,writeErr := dstFile.Write(buf) if writeErr != nil { log.Fatal(writeErr) } } //忽略Close 错误 dstFile.Close() srcFile.Close() }
因为 func Copy(dst Writer,src Reader) (written int64,err error) func CopyBuffer(dst Writer,src Reader,buf []byte) (written int64,err error) func CopyN(dst Writer,n int64) (written int64,err error) 具体代码如下: package main import ( "io" "log" "os" ) func main() { //创建一个新文件 dstFile,1024) _,cpErr := io.CopyBuffer(dstFile,srcFile,buf) if cpErr != nil { log.Fatal(cpErr) } //忽略Close 错误 dstFile.Close() srcFile.Close() } 区分打开的
|