文档章节

Lua 如何快速的读取一个文件

水果糖的小铺子
 水果糖的小铺子
发布于 2018/11/05 20:03
字数 231
阅读 1K
收藏 0
Lua

如何使用Lua 优雅并快速的读取一个文件的全部内容?

在这里我们可以看一下代码:

local open = io.open
local insert = table.insert
local concat = table.concat

function load_file(filename)
	local file = open(filename, 'rb')
	if not file then
		return
	end
	local f = {}
	for line in file:lines("l") do
		insert(f, line)
	end
	file:close()
	return concat(f, '\n')
end

print('file size = ', #load_file('filename'))

 

这里使用time命令行工具进行5次读取计时:

bogon:~ candy$ time lua main.lua 
file size = 	5570813

real	0m0.052s
user	0m0.037s
sys	0m0.013s
bogon:~ candy$ time lua main.lua 
file size = 	5570813

real	0m0.051s
user	0m0.037s
sys	0m0.012s
bogon:~ candy$ time lua main.lua 
file size = 	5570813

real	0m0.052s
user	0m0.037s
sys	0m0.012s
bogon:~ candy$ time lua main.lua 
file size = 	5570813

real	0m0.054s
user	0m0.038s
sys	0m0.014s
bogon:~ candy$ time lua main.lua 
file size = 	5570813

real	0m0.052s
user	0m0.037s
sys	0m0.012s
bogon:~ candy$

 

© 著作权归作者所有

水果糖的小铺子

水果糖的小铺子

粉丝 24
博文 153
码字总数 73315
作品 1
广州
程序员
私信 提问
cf 0.3.1发布, 持续更新与优化 Lua Web 应用框架

core_framework 是一个基于 libev 的轻量级 lua 网络开发框架。cf 使用 lua 脚本语言进行服务端业务逻辑开发, 在其内部实现了多种网络协议与第三方库用来帮助使用者进行项目原型的快速开发。...

水果糖的小铺子
2019/07/01
711
0
Lua Web快速开发指南(5) - 利用template库构建httpd模板引擎

介绍template 模板引擎是为了使用户界面与业务数据(内容)分离而产生的, 其本身并不是一种深奥的技术. template模板引擎首先会将合法的模板编译为lua函数, 然后将模板文件和数据通过模板引擎...

水果糖的小铺子
2019/06/14
36
0
数据持久化,序列化,反序列化,文件读写

文章来自:http://mobile.51cto.com/iphone-286562.htm LUA脚本语言之数据文件与持久化是本文要介绍的内容,当我们处理数据文件的,一般来说,写文件比读取文件内容来的容易。因为我们可以很...

xiao理想
2014/09/22
62
0
[lua] 使用lua string作为二进制buffer和c/c++交互

遇到一个需求是使用lua读取一个二进制文件或者从网络下载一个二进制文件,然后将文件数据传入一个c函数中处理。先是想到使用userdata, 但lua读取文件出来的是一个string,string貌似不能在l...

shezjl
2015/06/16
1K
0
Lua2.4 执行之前 opcode.c

上节说到了 luadofile 执行脚本文件,或者编译过的脚本二进制文件。 这节看下,Lua 是如何区别这两种文件的,以及虚拟机在开始执行字节码之前,程序里面都发生了什么? lua.c 里面的调用了 ...

晓寒
2014/10/16
234
0

没有更多内容

加载失败,请刷新页面

加载更多

WPF界面开发—看DevExpress如何实现对.NET Core 3.0中的VS集成

下载DevExpress v19.2完整版 DevExpress v19.2汉化资源获取 通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代...

FILA6666
7分钟前
57
0
总结:Java锁机制

一、 二、可重入锁与不可重入锁 可重入锁, 即一个线程可以进入任何一个 该线程 已经拥有的锁所同步着的代码块 。 参考: https://www.cnblogs.com/xdyixia/p/9383388.html...

浮躁的码农
11分钟前
51
0
SpringBoot+Mybatis+ShardingJDBC实现数据分片

研究了一番ShardingShpere, 用SpringBoot+Mybatis+ShardingJDBC搭建了一个最简单的数据分区的构架,在此记录一下。 ShardingJDBC是基于Mybatis等ORM框架和数据库之间的一层中间件,简单地说...

莫在全
12分钟前
74
0
为什么要有边缘计算

我们处在信息化的革命时代,后者说是数字化革命的时代,总而言之就是电脑的时代,一个把各式各样的信息都进行数字化的时代,然后交给计算机处理。我们需要知道整个计算机发展的本质,本质就是...

Jesse_0
12分钟前
200
0
MetInfo 修改版权标识的文字和超链接是否构成侵权

根据《米拓企业建站系统最终用户授权许可协议》中的“无论以任何用途、程度、方式(修改或美化),只要使用MetInfo的整体或任何部分,未获得版权标识修改许可,网站页面的版权标识(Powered...

MetInfo
19分钟前
82
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部