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()
}
区分打开的
|
