标准库 - 输入输出处理(input and output facilities)
责任编辑:cynthia作者:来自ITPUB论坛
2008-02-18 文本Tag: Lua

【IT168 技术文档】I/O库提供两种不同的方式进行文件处理
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil

1、io.close ([file])
功能:相当于file:close(),关闭默认的输出文件
2、io.flush ()
功能:相当于file:flush(),输出所有缓冲中的内容到默认输出文件
3、io.lines ([filename])
功能:打开指定的文件filename为读模式并返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil,并自动关闭文件
若不带参数时io.lines() <=> io.input():lines(); 读取默认输入设备的内容,但结束时不关闭文件
如:for line in io.lines("main.lua") do
print(line)
end
4、io.open (filename [, mode])
功能:按指定的模式打开一个文件,成功则返回文件句柄,失败则返回nil+错误信息
mode:
"r": 读模式 (默认);
"w": 写模式;
"a": 添加模式;
"r+": 更新模式,所有之前的数据将被保存
"w+": 更新模式,所有之前的数据将被清除
"a+": 添加更新模式,所有之前的数据将被保存,只允许在文件尾进行添加
"b": 某些系统支持二进制方式
5、io.output ([file])
功能:相当于io.input,但操作在默认输出文件上
6、io.popen ([prog [, mode]])
功能:开始程序prog于额外的进程,并返回用于prog的文件句柄(并不支持所有的系统平台)
7、io.read (...)
功能:相当于io.input():read
8、io.tmpfile ()
功能:返回一个临时文件句柄,该文件以更新模式打开,程序结束时自动删除
9、io.type (obj)
功能:检测obj是否一个可用的文件句柄
返回:
"file":为一个打开的文件句柄
"closed file":为一个已关闭的文件句柄
nil:表示obj不是一个文件句柄
10、io.write (...)
功能:相当于io.output():write
11、file:close()
功能:关闭文件
注:当文件句柄被垃圾收集后,文件将自动关闭。句柄将变为一个不可预知的值
12、file:flush()
功能:向文件写入缓冲中的所有数据
13、file:lines()
功能:返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil,但不关闭文件
如:for line in file:lines() do body end
14、file:read(...)
功能:按指定的格式读取一个文件,按每个格式函数将返回一个字串或数字,如果不能正确读取将返回nil,若没有指定格式将指默认按行方式进行读取
格式:
"*n": 读取一个数字
"*a": 从当前位置读取整个文件,若为文件尾,则返回空字串
"*l": [默认]读取下一行的内容,若为文件尾,则返回nil
number: 读取指定字节数的字符,若为文件尾,则返回nil;如果number为0则返回空字串,若为文件尾,则返回nil;
15、file:seek([whence][,offset])
功能:设置和获取当前文件位置,成功则返回最终的文件位置(按字节),失败则返回nil加错误信息
参数
whence:
"set": 从文件头开始
"cur": 从当前位置开始[默认]
"end": 从文件尾开始
offset:默认为0
不带参数file:seek()则返回当前位置,file:seek("set")则定位到文件头,file:seek("end")则定位到文件尾并返回文件大小
16、file:setvbuf(mode,[,size])
功能:设置输出文件的缓冲模式
参数
mode:
"no": 没有缓冲,即直接输出
"full": 全缓冲,即当缓冲满后才进行输出操作(也可调用flush马上输出)
"line": 以行为单位,进行输出(多用于终端设备)
最后两种模式,size可以指定缓冲的大小(按字节),忽略size将自动调整为最佳的大小
17、file:write(...)
功能:按指定的参数格式输出文件内容,参数必须为字符或数字,若要输出其它值,则需通过tostring或string.format进行转换

转载于:https://www.cnblogs.com/lifesteven/p/3978251.html

标准库 - 输入输出处理(input and output facilities) lua相关推荐

  1. 输入输出(Input and Output)

    待写! 转载于:https://www.cnblogs.com/hailunyoo/p/4844052.html

  2. [转载] [python3教程]第七章.输入输出(Input and Output)

    参考链接: Python中的JSON格式化formatting 一个程序的输出有多重方式:数据可以展示成人类易读的方式或是写入一个文件等待以后使用,这一章我们就会讨论这些方式. 7.1 Fancier ...

  3. [python3教程]第七章.输入输出(Input and Output)

    一个程序的输出有多重方式:数据可以展示成人类易读的方式或是写入一个文件等待以后使用,这一章我们就会讨论这些方式. 7.1 Fancier Output Formatting 到目前位置我们已经遇到了两 ...

  4. python的input()函数与getpass标准库

    1. input()函数给我们提供了从键盘输入数据的途径,我们经常用这个函数来读入用户名等一些可以明文显示的数据.但是对于像密码这样的要密文显示的场景,这个函数就显得不安全了.因此python也给我们 ...

  5. C++的iostream标准库介绍+使用详解(转)

    0 为什么需要iostream 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所 以讨论此标准库是有必要的,它与C语言的 stdio库不同,它从一开始就 ...

  6. C++的iostream标准库介绍

    C++的iostream标准库介绍 0 为什么需要iostream 1 iostream: istream 和 ostream 2 fstream: ifstream 和 ofstream 3 str ...

  7. python标准库(二)

    格式化输出 reprlib 库用来格式化 >>> import reprlib >>> reprlib.repr(set('aabbccddeeeff')) &qu ...

  8. 最新 C++的iostream标准库介绍(1)

    我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象 ...

  9. STL和C++标准库

    STL和C++标准函数库 STL是最新的C++标准函数库中的一个子集,这个庞大的子集占据了整个库的大约80%的分量.而作为在实现STL过程中扮演关键角色的模板则充斥了几乎整个C++标准函数库.在这里, ...

最新文章

  1. 学python好不好-学历低可以学python吗?好不好就业?
  2. 从零实现一个简易jQuery框架之一—jQuery框架概述
  3. 【问链财经-区块链基础知识系列】 第十九课 区块链应用于电子存证
  4. python调用库实现返回ping的时延_python网络作业:使用python的socket库实现ICMP协议的ping...
  5. Caused by: java.net.UnknownHostException: ubuntu: Name or service not known
  6. Facebook用户遭遇千年虫:瞬间有了46年老友
  7. 聚烷撑乙二醇(数学+期望)
  8. 解决安卓字体偏移:页面整体缩放
  9. raspberry pi_在Raspberry Pi上试用Docker
  10. 【CF 600E】Lomsat gelral(树上启发式合并, dsu on tree, 静态链分治,模板题)
  11. ppm/℃是什么单位?什么意思?
  12. pdf 旋转视图,为啥不能保存?
  13. 火狐浏览器设置背景图片
  14. 服务器证书类型有哪些
  15. 劳动与社会保障法-作业
  16. 5_ARM Cortex-M汇编
  17. nslookup 查看DNS域名解析
  18. php 字体好看点,字丑不用怕,带你轻松画出好看字体!
  19. 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
  20. 2021-06-22 19点30 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周2白天反弹持续进行,量能不高但平稳,持续反弹概率大,等待顶部信号出现再反向交易,暂多。但周月线持续跌势。

热门文章

  1. linux shell字符串及字符串长度获取方式
  2. hdfs数据均衡操作命令
  3. 再见 Jenkins!几行脚本搞定自动化部署,这款神器有点厉害
  4. flink wordcount示例
  5. Spring注解开发-初始化/销毁方法注解
  6. jQuery EasyUI 选项卡面板tabs使用实例精讲
  7. vooc是什么快充协议_5G时代除了网速,快充同样重要!
  8. 如何在eclipse中自定义一个jar包名称
  9. 第一行代码学习笔记第六章——详解持久化技术
  10. 【图文解释】快速排序算法