千家信息网

Go语言如何对文件进行操作

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Go语言如何对文件进行操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何对文件进行操作文章都会有所收获,下面我们一起来看看吧。# 建立与打开
千家信息网最后更新 2026年11月03日Go语言如何对文件进行操作

这篇文章主要介绍了Go语言如何对文件进行操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言如何对文件进行操作文章都会有所收获,下面我们一起来看看吧。

# 建立与打开文件

// 新建文件可以通过如下两个方法:

func Create(name string) (file *File, err Error)

根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666的文件,返回的文件对象是可读写的。

func NewFile(fd uintptr, name string) *File

根据文件描述符创建相应的文件,返回一个文件对象

// 通过如下两个方法来打开文件:

func Open(name string) (file *File, err Error)

该方法打开一个名称为name的文件,但是是只读方式,内部实现其实调用了OpenFile。

func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

打开名称为name的文件,flag是打开的方式,只读、读写等,perm是权限

// 写文件

func (file *File) Write(b []byte) (n int, err Error)

写入byte类型的信息到文件

func (file *File) WriteAt(b []byte, off int64) (n int, err Error)

在指定位置开始写入byte类型的信息

func (file *File) WriteString(s string) (ret int, err Error)

写入string信息到文件

// 读文件

func (file *File) Read(b []byte) (n int, err Error)

读取数据到b中

func (file *File) ReadAt(b []byte, off int64) (n int, err Error)

从off开始读取数据到b中

// 删除文件

func Remove(name string) Error

调用该函数就可以删除文件名为name的文件

////关闭文件

func (file *File)Close()

写文件

// code_034_os_write_to_file project main.gopackage mainimport (  "fmt"  "os")func main() {  //新建文件  fout, err := os.Create("./createfile.txt")  if err != nil {    fmt.Println(err)    return  }  defer fout.Close()  for i := 0; i < 5; i++ {    //备注:windows环境下,结尾\r\n才能换行,linux下\n就可以    outstr := fmt.Sprintf("%s:%d\r\n", "Hello Go", i) //Sprintf控制台输出,并有返回值string    // 写入文件    fout.WriteString(outstr)             //string信息    fout.Write([]byte("abcd\r\n"))          //byte类型  }}

读文件

// code_035_os_read_from_file project main.gopackage mainimport (  "fmt"  "os")func main() {  fin, err := os.Open("./open_and_read1.txt")  if err != nil {    fmt.Println(err) //若文件不存在:The system cannot find the file specified.  }  defer fin.Close()  buf := make([]byte, 1024) //创建存储slice  for {    n, _ := fin.Read(buf) //读文件    if n == 0 {      break    }    fmt.Println(string(buf))  }}

拷贝文件----》(备注:已经创建并写入内容的local_copy_file.txt)终端切换到当前目录下,执行 go run main.go local_copy_file.txt dst_file.txt

// code_036_os_copy_file project main.gopackage mainimport (  "fmt"  "io"  "os")func main() {  // 使用命令行提高拷贝的复用性  args := os.Args  if args == nil || len(args) != 3 {    fmt.Println("useage : go filename.go src File dstFile")    return  }  srcPath := args[1]  dstPath := args[2]  fmt.Printf("srcPath = %s, dstPath = %s\r\n", srcPath, dstPath)  if srcPath == dstPath {    fmt.Println("源文件和目标文件不能重名")  }  //执行复制  srcFile, err1 := os.Open(srcPath)  if err1 != nil {    fmt.Println(err1)    return  }  dstFile, err2 := os.Create(dstPath)  if err2 != nil {    fmt.Println(err2)    return  }  read_buf := make([]byte, 1024)  for {    //读取文件    n, err := srcFile.Read(read_buf) //每次文件读取字节的长度    if err != nil && err != io.EOF {      fmt.Println(err)      break    }    if n == 0 {      fmt.Println("文件处理完毕")      break    }    //写入目的文件    write_buf := read_buf[:n]    dstFile.Write(write_buf)  }  // 关闭文件  srcFile.Close()  dstFile.Close()}

关于"Go语言如何对文件进行操作"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Go语言如何对文件进行操作"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

文件 语言 信息 内容 对象 方法 知识 类型 两个 名称 备注 拷贝 数据 方式 权限 篇文章 价值 位置 函数 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 新华互联网科技学校 科技和互联网公司 科技互联网公司装修 重庆互联网络科技 科技制造互联网公司 浩特互联网科技 互联网金融和金融科技 重庆科技学院互联网 深圳前海聚择互联网科技有限公司 承德科技产业互联网发展 互联网时代科技改变生活 洛阳昕诺飞互联网科技有限公司 国大互联网教育科技有限公司工作 广州新华互联网科技学校电竞方面 深圳互联网科技的发展 陕西云淼互联网科技公司 福仕德教育科技互联网 美国五大互联网科技公司市值多少 知域互联网科技有限公司官网 百单网互联网科技有限公司怎么样 华服互联网科技怎么样 融势互联网科技 中国科技互联网公司收入 昭通云南众福互联网科技有限公司 互联网科技项目计划书材料类 互联网媒体平台算高科技产业 互联网行业科技股 互联网科技股为什么大涨 深圳互联网科技园地址
0