十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
测试文件使用的文件大小为 1.35GB 的日志文本文件,使用下面两种方式来读取。
创新互联建站从2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元西安做网站,已为上家服务,为西安各地企业和个人服务,联系电话:028-86922220
Go 标准库中包含了读写的缓冲库,直接使用即可:
输出结果为:
Go 标准库中包括了 io 读写的相关工具包,直接开箱即用:
输出结果为:
结果对比
测试发现, ioutil.ReadFile 比 bufio 读写还要快。
我们需要对一些文本进行"明文加密",何为"明文加密"?
从一些错乱的数据中,提取我们想要的数据.
生成错乱的数据(可以随机生成)
只需从上面的字符串提取数字即可,45.89.0.8
这里只是举个简单例子
这样就会该go文件同级目录生成bin文件
并未使用binary.Read()方法
读取到的文本
再根据自己的规则去提取该字符中你想要的数据即可.
本文主要介绍了Go语言中文件读写的相关操作。
文件是什么?
计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。
os.Open() 函数能够打开一个文件,返回一个 *File 和一个 err 。对得到的文件实例调用 close() 方法能够关闭文件。
为了防止文件忘记关闭,我们通常使用defer注册文件关闭语句。
Read方法定义如下:
它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回 0 和 io.EOF 。 举个例子:
使用for循环读取文件中的所有数据。
bufio是在file的基础上封装了一层API,支持更多的功能。
io/ioutil 包的 ReadFile 方法能够读取完整的文件,只需要将文件名作为参数传入。
os.OpenFile() 函数能够以指定模式打开文件,从而实现文件写入相关功能。
其中:
name :要打开的文件名 flag :打开文件的模式。 模式有以下几种:
perm :文件权限,一个八进制数。r(读)04,w(写)02,x(执行)01。
文件分类:文本文件和二进制文件
文本文件可读性好,占用的数据空间大
二进制文件,可读性差,占用的数据空间小
文件存取方式:随机存取和顺序存放
随机存取:操作速度慢,对磁盘的消耗大
顺序存放:操作数据块,对磁盘的消耗小
初级方法
高级方法
在程序和文件之间,添加一个缓冲区,每次程序读取文件内容的时候,先去缓冲区查看,如果需要的内容,直接获取,如果没有再去文件中获取
由于缓冲是在内存当中的,和程序的交互返回速度会非常快,这样可以大大提高程序的性能和速度
缺点:有的数据是只在缓冲中存储的,如果在缓冲释放之前,没有将数据实例化落盘,会导致数据的丢失
按行操作文件对象
将之前的file方法封装起来,可以更加方便的使用
使用gzip.NewReader(文件句柄),来操作压缩文件
示例: file,err := os.OpenFile("main.go", os.O_WRONLY|os.O_WRONLY, 0666)
三个参数,
文件操作方法,需要注意不能冲突
操作完成后,当前目录出现一个text.txt 文件,内容是:hello world,test
这里可以可以考虑使用buffio来实现