• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go语言之文件操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一: 相关的API

1func Create(name string) (file *File, err Error)
  根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666
2 func NewFile(fd uintptr, name string) *File
 根据文件描述符创建相应的文件,返回一个文件对象
3 func Open(name string) (file *File, err Error)
  只读方式打开一个名称为name的文件
4 func OpenFile(name string, flag int, perm uint32) (file *File, err Error)
  打开名称为name的文件,flag是打开的方式,只读、读写等,perm是权限
5 func (file *File) Write(b []byte) (n int, err Error)
  写入byte类型的信息到文件
6 func (file *File) WriteAt(b []byte, off int64) (n int, err Error)
  在指定位置开始写入byte类型的信息
7 func (file *File) WriteString(s string) (ret int, err Error)
  写入string信息到文件
8 func (file *File) Read(b []byte) (n int, err Error)
  读取数据到b中
9 func (file *File) ReadAt(b []byte, off int64) (n int, err Error)
  从off开始读取数据到b中
10 func Remove(name string) Error
  删除文件名为name的文件

二: 写文件

package main

import (
   "os"
   "fmt"
)

func main() {
   //新建文件
   file, err := os.Create("./xxx.txt")
   if err != nil {
      fmt.Println(err)
      return
   }
   defer file.Close()
   //写入内容
   for i := 0; i < 5; i++ {
      //写入信息
      file.WriteString("ab\n")
      file.Write([]byte("cd\n"))
   }
}

三:读文件

package main

import (
   "os"
   "fmt"
)

func main() {
   //打开文件
   file, err := os.Open("./xxx.txt")
   if err != nil {
      fmt.Println(err)
   }
   defer file.Close()
   buf := make([]byte, 1024)
   for {
      //读文件
      n, _ := file.Read(buf)
      if n == 0 {
         break
      }
      fmt.Println(string(buf))
   }
}

四:拷贝文件

package main

import (
   "os"
   "fmt"
   "io"
)

func main() {
   //打开文件
   srcFile, err := os.Open("./xxx.txt")
   if err != nil {
      fmt.Println(err)
      return
   }
   //创建目标文件
   dstFile, err2 := os.Create("./yyy.txt")
   if err2 != nil {
      fmt.Println(err2)
      return
   }
   //切片缓冲区
   buf := make([]byte, 1024)
   for {
      //从源文件读
      n, err := srcFile.Read(buf)
      //Read()若无法得到更多的结果,就返回EOF
      if err != nil && err != io.EOF {
         fmt.Println(err)
         break
      }
      if n == 0 {
         fmt.Println("文件处理完毕")
         break
      }
      //读到的内容写入目标文件
      dstFile.Write(buf[:n])
   }
   srcFile.Close()
   dstFile.Close()
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言 - 文件操作发布时间:2022-07-10
下一篇:
Go系列教程——第22篇:信道(channel)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap