Go by Example 中文版: 读文件- 云+社区 - 腾讯云

文章推薦指數: 80 %
投票人數:10人

相关的Go语言示例程序代码如下: // Go by Example 中文版: 读文件 // https://gobyexample-cn.github.io/reading-files // 读写文件在很多程序中都是 ... 腾讯云备案控制台云+社区专栏视频精选问答沙龙云+竞赛实验室团队主页开发者手册腾讯云TI平台TVP搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏视频精选问答沙龙云+竞赛团队主页开发者手册腾讯云TI平台TVP返回腾讯云官网ccf19881030369篇文章GobyExample中文版:读文件转到我的清单专栏首页ccf19881030的博客GobyExample中文版:读文件50分享分享文章到朋友圈分享文章到QQ分享文章到微博复制文章链接到剪贴板海报分享海报分享GobyExample中文版:读文件2020-09-242020-09-2411:15:19阅读1180GobyExample中文版:读文件:读文件读写文件在很多程序中都是必须的基本任务。

首先我们来看一些读文件的例子。

相关的Go语言示例程序代码如下://GobyExample中文版:读文件 //https://gobyexample-cn.github.io/reading-files //读写文件在很多程序中都是必须的基本任务。

首先我们来看一些读文件的例子。

packagemain import( "bufio" "fmt" "io" "io/ioutil" "os" ) //读取文件需要经常进行错误检查,这个帮助方法可以精简下面的错误检查过程。

funccheck(eerror){ ife!=nil{ panic(e) } } funcmain(){ //最基本的文件读取任务获取就是将文件内容读取到内存中。

dat,err:=ioutil.ReadFile("/tmp/dat") check(err) fmt.Print(string(dat)) //您通常会希望对文件的读取方式和内容进行更多控制。

//对于这个任务,首先使用Open打开一个文件,以获取一个os.File值。

f,err:=os.Open("/tmp/dat") //deferf.Close() check(err) //从文件的开始位置读取一些字节。

最多允许读取5个字节,但还要注意实际读取了多少个。

b1:=make([]byte,5) n1,err:=f.Read(b1) check(err) fmt.Printf("%dbytes:%s\n",n1,string(b1[:n1])) //你也可以Seek到一个文件中已经的位置,并从这个位置开始读取。

o2,err:=f.Seek(6,0) check(err) b2:=make([]byte,2) n2,err:=f.Read(b2) check(err) fmt.Printf("%dbytes@%d:",n2,o2) fmt.Printf("%v\n",string(b2[:n2])) //例如,io包提供了一个更健壮的实现ReadAtLeast,用于读取上面那种文件。

o3,err:=f.Seek(6,0) check(err) b3:=make([]byte,2) n3,err:=io.ReadAtLeast(f,b3,2) check(err) fmt.Printf("%dbytes@%d:%s\n",n3,o3,string(b3)) //没有内建的倒带,但是Seek(0,0)实现了这一功能。

_,err=f.Seek(0,0) check(err) //bufio包实现了一个缓冲读取器,这可能有助于提高许多小读操作的效率,以及它提供了很多附加的读取函数。

r4:=bufio.NewReader(f) b4,err:=r4.Peek(5) check(err) fmt.Printf("5bytes:%s\n",string(b4)) //任务结束后要关闭这个文件(通常这个操作应该在Open操作后立即使用defer来完成)。

f.Close() }运行结果如下:$echo"hello">/tmp/dat $echo"go">>/tmp/dat $gorunreading-files.go hello go 5bytes:hello 2bytes@6:go 2bytes@6:go 5bytes:hello下面是我在CentOS7下的运行结果截图: 下面我们来看一下写入文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

展开阅读全文举报点赞5分享登录后参与评论GobyExample中文版:写文件 我们刚刚看到了文件I/O思想,接下来,我们看看它在stdin和stdout流中的应用。

ccf19881030GobyExample中文版:时间GobyExample中文版:时间 Go为时间(time)和时间段(duration)提供了大量的支持;这里有一些例子。

Go示例代码如下:ccf19881030GobyExample中文版:互斥锁在前面的例子中,我们看到了如何使用原子操作来管理简单的计数器。

对于更加复杂的情况,我们可以使用一个互斥锁来在Go协程间安全的访问数据。

示例代码如下:ccf19881030GobyExample中文版:时间戳一般程序会有获取Unix时间的秒数,毫秒数,或者微秒数的需求。

来看看如何用Go来实现。

Go语言的示例代码如下:ccf19881030GobyExample中文版:SHA1哈希SHA1散列(hash)经常用于生成二进制文件或者文本块的短标识。

例如,git版本控制系统大量的使用了SHA1来标识受版本控制的文件和目录。

这是...ccf19881030GobyExample中文版:Base64编码Go提供了对base64编解码的内建支持。

下面是使用encoding/base64包进行编解码的Go示例代码:ccf19881030GobyExample中文版:HTTP服务端使用net/http包,我们可以轻松实现一个简单的HTTP服务器。

示例代码如下:ccf19881030GobyExample中文版:行过滤器行过滤器(linefilter)是一种常见的程序类型,它读取stdin上的输入,对其进行处理,然后将处理结果打印到stdout。

grep和se...ccf19881030GobyExample中文:排序本文转载自GobyExample中文:排序,英文在线地址为:GobyExample:Sorting,中文版的Github地址为:gobyexampl...ccf19881030GobyExample中文:工作池在这个例子中,我们将看到如何使用Go协程和通道实现一个工作池。

对应的源代码如下:ccf19881030GobyExample中文:通道方向Github仓库GobyExample中文对应的源代码地址为:channel-directions.go mmcgrana/gobyexample英文原...ccf19881030GobyExample中文:组合函数我们经常需要程序在数据集上执行操作,比如选择满足给定条件的所有项,或者将所有的项通过一个自定义函数映射到一个新的集合上。

ccf19881030GobyExample中文:正则表达式Go提供内置的正则表达式。

这里是Go中基本的正则相关功能的例子。

go语言的正在表达式示例代码如下:ccf19881030GobyExample中文:字符串函数标准库的strings包提供了很多有用的字符串相关的函数。

这里是一些用来让你对这个包有个初步了解的例子。

对应的示例测试程序如下:ccf19881030GobyExample中文:字符串格式化Go在传统的printf中对字符串格式化提供了优异的支持。

这里是一些基本的字符串格式化的人物的例子。

下面是go的源代码示例程序:ccf19881030GobyExample中文:使用函数自定义排序有时候我们想使用和集合的自然排序不同的方法对集合进行排序。

例如,我们想按照字母的长度而不是首字母顺序对字符串排序。

这里是一个Go自定义排序的例子。

ccf19881030Go读文件用户5760343go读取文件对于循环的每一次迭代,内部文件指针被更新。

当下一次读取发生时,从文件指针偏移开始的数据返回到缓冲区的大小。

所有读取/读取调用在内部翻译成系统调用并发送到内核,内...solateRust的第一印象有些朋友应该知道,我最近在看Rust,在朋友圈我发了一些关于Rust相关的东西。

2021年,会陆续写一些Rust相关的文章。

今天先来一篇。

lucifer210更多文章ccf19881030C++开发工程师关注专栏文章369阅读量230.8K获赞835作者排名540腾讯云原生专题云原生技术干货,业务实践落地。

一键订阅《云荐大咖》专栏获取官方推荐精品内容,学技术不迷路!立即查看腾讯云自媒体分享计划入驻云加社区,共享百万资源包。

立即入驻社区专栏文章阅读清单互动问答技术沙龙技术快讯团队主页开发者手册腾讯云TI平台活动原创分享计划自媒体分享计划邀请作者入驻自荐上首页在线直播生态合作计划资源技术周刊社区标签开发者实验室关于视频介绍社区规范免责声明联系我们友情链接归档问题归档专栏文章归档快讯文章归档关键词归档开发者手册归档开发者手册Section归档云+社区扫码关注云+社区领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL数据库SSL证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright©2013-2021TencentCloud.AllRightsReserved.腾讯云版权所有京公网安备11010802017518粤B2-20090059-1扫描二维码扫码关注云+社区领取腾讯云代金券



請為這篇文章評分?