Golang中怎么创建文件目录
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这期内容当中小编将会给大家带来有关Golang中怎么创建文件目录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。文件目录的创建和删除package mainimpor
千家信息网最后更新 2025年01月31日Golang中怎么创建文件目录
这期内容当中小编将会给大家带来有关Golang中怎么创建文件目录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
文件目录的创建和删除
package mainimport( "fmt" "os")func main(){ //创建目录和权限 os.Mkdir("./benben",0777) //创建多级目录和设置权限 os.MkdirAll("./benben/test",0777) //删除目录 err:=os.Remove("./benben") if err!=nil{ fmt.Println(err) } //删除多级目录 os.RemoveAll("./benben")}
文件的创建
package mainimport ( "os" "fmt")func main(){ //文件的创建,Create会根据传入的文件名创建文件,默认权限是0666 file,err:=os.Create("a.txt") if err!=nil{ fmt.Println(err) } defer file.Close()}
文件的打开和关闭 文件的打开和关闭相关函数在文件的读取和写入示例中演示。
文件的读取和写入 文件的读取有以下几种方式: 方法一: 利用os.Open()和ioutil.ReadAll()两个方法
package mainfunc main(){ //打开文件 file,err:=os.Open("a.txt") if err !=nil { fmt.Println(err) } //文件的关闭 defer file.Close() //文件读取方式一,通过os.Open返回一个文件句柄,然后利用它进行读取 body,err:=ioutil.ReadAll(file) if err !=nil { fmt.Println(err) } fmt.Println(string(body))}
方法二:利用ioutil.ReadFile()方法来实现读取操作。
package mainfunc main(){ body,err:=ioutil.ReadFile("a.txt") if err!=nil { fmt.Println(err) } fmt.Println(string(body))}
ReadFile函数直接将方式一中的三个步骤分装在了一起,下面是实现的具体代码。
func ReadFile(filename string)([]byte,error){ //打开文件 f,err:=os.Open(filename) if err!=nil { return nil,err } //延迟关闭文件 defer f.Close() //设置读取文件的字节数 var n int64 //Stat()方法会返回描述指定文件的信息结构FileInfo if fi,err:=f.Stat();err==nil{ if size:=fi.Size();size<1e9{ n=size } } //返回读取的文件内容 return readAll(f,n+bytes.MinRead)}
FileInfo具有以下方法:
Name() string //返回文件名Size() int64 //返回文件的字节长度Mode() FileMode //文件模式位ModTime() time.Time //修改时间IsDir() bool //是否是目录Sys() interface{} //底层数据源
方法三: 带缓存的读取
package mainfunc main(){ file,err:=os.Open("a.txt") if err!=nil { fmt.Println(err) } defer file.Close() //创建一个新的io.Reader,它实现了Read方法 reader:=bufio.NewReader(file) //设置读取的长度 buf:=make([]byte,1024) //读取文件 _,err=reader.Read(buf) if err!=nil { fmt.Println(err) } fmt.Println(string(buf))}
文件的写入 方法一: 利用ioutil.WriteFile()
package mainimport ( "io/ioutil")func main(){ content:=[]byte("Go is an open source programming language that makes is easy to build simple,reliable,and efficient software) err:=ioutil.WriteFile("a.txt",content,0777) if err!=nil { fmt.Println(err) } fmt.Println("write file successful")}
看看WriteFile具体是如何实现文件的写入的。
func WriteFile(filename string,data []byte,perm os.FileMode) error{ //打开文件 f,err:=os.OpenFile(filename,os.O_WRONLY|os.O_CREATE|os.O_TRUNC,perm) if err!=nil { return err } //文件的写入 n,err:=f.Write(data) if err==nil && n方法二:打开文件,然后利用Write()进行文件读写,注意:此时不能用os.Open()打开,而要用os.OpenFile()打开。os.Open()和os.OpenFile()两者区别
package mainfunc main(){ file,err:=os.OpenFile("a.txt",os.O_RDWR|os.O_CREATE,0777) if err!=nil { fmt.Println(err) } defer file.Close() content:=[]byte("Go is an open source programing language that makes it easy to build simple,reliable,and efficient software") _,err=file.Write(content) if err!=nil { fmt.Println(err) } fmt.Println("write file successful")}方法三:通过有缓冲操作的bufio提供的包进行操作 如果使用Write方法实现写操作,此时就还需要使用Flush()方法。golang bufio包中的Write方法分析
package mainfunc main(){ file,err:=os.OpenFile("a.txt", os.O_CREATE|os.O_RDWR, 0666) if err!=nil { fmt.Println(err) } defer file.Close() content:=[]byte("Go is an open source programing language that makes it easy to build simple,reliable,and efficient software") //使用NewWriter方法返回的io.Writer缓冲默认大小为4096,也可以使用NewWriterSize方法设置缓存的大小 newWriter:=bufio.NewWriter(file) //将文件写入缓存 if _,err =newWriter.Write(content);err!=nil { fmt.Println(err) } //从缓存写入到文件中 if err= newWriter.Flush(); err!=nil { fmt.Println(err) } fmt.Println("write file successful")}上述就是小编为大家分享的Golang中怎么创建文件目录了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
文件
方法
目录
缓存
内容
方式
权限
分析
函数
大小
字节
文件名
长度
缓冲
三个
专业
两个
中小
代码
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部队网络安全宣誓誓词
嵩明智能化软件开发厂家价格
dll数据库验证文件
软件开发实施人员面试问题
福建网络安全硬件设备价格
三级网络技术过关指南
联想服务器风扇声音大怎么解决
湖北盛天网络技术公司招聘
虹口区专业性软件开发包括什么
数据库忙时
个人接单软件开发合同
pregel数据库
服务器压力测试网页版
亿联网络技术 股价
网络安全用网服务指南
公司服务器都联网好不好
数据库反馈
互联网协议与数据库相交
地税部门开展网络安全专题
搭建服务器多少
神途服务器端
神经系统网络安全
沈阳 软件开发 公司
服务器端口不显示
卡巴斯基和华为服务器
七台河电子书软件开发公司排名
交行软件开发中心领导
软件开发横刀图
帝国神话笔记本开服务器
贵州网络技术培训学校