Go语言中常见的文件操作分享.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Go语言中常见的文件操作分享

目录常用包os与I/O操作相关包常用文件/目录操作路径拼接创建文件(touch)获取文件信息读取文件内容写入文件内容

常用包

文件操作应该是应用程序里非常常见的一种操作,无论是哪种应用场景,几乎都离不开文件的基本操作。Go语言中提供了三个不同的包去处理文件

os

os包提供了处理文件的API接口,遵循Unix标准,平台无关,所有操作系统都可以使用。错误处理上是Go语言独有的,失败时,返回的是错误类型而非系统错误编号,对于调试很有帮助。os包中提供了创建、删除、打开、修改权限等功能。

与I/O操作相关包

io

I/O原语接口包装到了公共接口中,该接口抽象了功能

ioutil

I/O实用功能,从Go1.6开始,可以直接通过io后os包访问相同的功能

bufio

文件的缓冲I/O提供接口缓冲区实际是内存中的临时空间,用于存储数据并在该空间执行临时I/O操作,减少系统调用及磁盘I/O,适用于数据块传输场景,不适用于单个字符的I/O操作默认的操作都是无缓冲的

常用文件/目录操作

路径拼接

packagemain

import(

fmt

path

funcJoinPath(){

dirs:=[]string{/,home,ray,workspace}

path:=path.Join(dirs...)

fmt.Printf(Pathafterjoin:%v\n,path)

funcmain(){

JoinPath()

输出信息为

Pathafterjoin:/home/ray/workspace

更多功能请参考:https://pkg.go.dev/path/filepath#pkg-functions

创建文件(touch)

改代码执行后将生成一个为空的sample.txt文件

packagemain

import(

log

os

funcCreateEmptyFile(){

myFile,err:=os.Create(sample.txt)

iferr!=nil{

log.Fatal(ERROR!,err)

log.Println(Emptyfilecreatedsuccessfully.,myFile)

myFile.Close()

funcmain(){

CreateEmptyFile()

获取文件信息

这里主要使用os.Stat函数

packagemain

import(

fmt

log

os

funcFileInfo(){

fileInfo,err:=os.Stat(sample.txt)

iferr!=nil{

log.Fatal(err)

fmt.Println(FileName:,fileInfo.Name())

fmt.Println(Size,fileInfo.Size(),bytes)

fmt.Println(Permissions:,fileInfo.Mode())

fmt.Println(Lastmodified:,fileInfo.ModTime())

fmt.Println(IsDirectory:,fileInfo.IsDir())

funcmain(){

FileInfo()

读取文件内容

和其他语言类似,读取文件主要使用Open,Read等函数,文件处理最底层是基于原始字节的,在这个抽象之上,可以进一步构建更方便的接口。

packagemain

import(

log

os

funcFileRead(filePathstring){

oFile,err:=os.Open(filePath)

iferr!=nil{

log.Fatal(err)

deferoFile.Close()

buff:=make([]byte,100)

forno,err:=oFile.Read(buff);err==nil;no,err=oFile.Read(buff){

ifno0{

os.Stdout.Write(buff[0:no])

funcmain(){

FileRead(sample.txt)

文档评论(0)

138****3012 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档