Lua中的文件I/O操作教程_Lua

 Lua中I/O库用于读取和处理文件。有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符。

对于下面的例子中,我们将使用一个示例文件test.lua,如下图所示。

复制代码 代码如下:

-- sample test.lua
-- sample2 test.lua

一个简单的文件打开操作使用下面的语句。

复制代码 代码如下:

file = io.open (filename [, mode])

各种文件模式列示于下表中。

 隐文件描述符

隐文件描述符使用标准输入/输出模式,或使用单输入单输出文件。使用隐式文件的描述符的一个示例如下所示。

复制代码 代码如下:

-- Opens a file in read
file = io.open("test.lua", "r")

-- sets the default input file as test.lua
io.input(file)

-- prints the first line of the file
print(io.read())

-- closes the open file
io.close(file)

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- sets the default output file as test.lua
io.output(file)

-- appends a word test to the last line of the file
io.write("-- End of the test.lua file")

-- closes the open file
io.close(file)

当运行程序,会得到test.lua文件的第一行输出。这里例子中得到了下面的输出。

复制代码 代码如下:

-- Sample test.lua

这是声明 test.lua 文件的第一行。“-- End of the test.lua file” 将被追加到test.lua代码的最后一行

在上面的例子中可以看到隐描述与使用文件系统io.“×”方法是如何工作的。上面的例子使用io.read()没有可选参数。可选参数可以是以下任意一个。

 其他常见的IO方法包括:

  •     io.tmpfile():  返回读写临时文件,一旦程序退出,文件将被删除。
  •     io.type(file):  返回文件,关闭文件或零根据所输入的文件。
  •     io.flush(): 清除默认输出缓冲器。
  •     io.lines(optional file name): 提供了一个通用的循环迭代器遍历文件并关闭在最后的情况下提供文件名和默认文件的文件被使用,在循环的末尾没有关闭。

明确的文件描述符

我们经常使用明确的文件描述符,使我们能够在同一时间处理多个文件。这些功能都相当相似的隐式文件描述符。在这里,我们使用的文件:函数名,而不是io.function_name。同样地隐文件描述符例的文件版本,以下示例如下所示。

复制代码 代码如下:

-- Opens a file in read mode
file = io.open("test.lua", "r")

-- prints the first line of the file
print(file:read())

-- closes the opened file
file:close()

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- appends a word test to the last line of the file
file:write("--test")

-- closes the open file
file:close()

当运行程序,会得到的隐含描述的例子是类似的输出。

复制代码 代码如下:

-- Sample test.lua

文件打开和参数进行读取外部描述的所有的模式是一样的隐含文件的描述符。

其他常见的文件的方法包括:

  •     file:seek(optional whence, optional offset): 参数"set", "cur" 或 "end"。设置新的文件指针从文件的开始更新的文件的位置。偏移量是零基础的这个功能。从如果第一个参数是“set”该文件的开始时所测的偏移量;从如果它是“cur” 文件中的当前位置;或从该文件的结束,如果是“end”。默认参数值是“cur”和0,因此当前的文件位置可以通过调用不带参数这个函数来获得。
  •     file:flush(): 清除默认输出缓冲器。
  •     io.lines(optional file name): 提供了一个通用的循环迭代器遍历文件并关闭在最后的情况下提供文件名和默认文件的文件被使用,在循环的末尾没有关闭。

一个例子,以使用寻求方法如下所示。offsets从25个位置的光标之前的文件的末尾。从文件的读出功能的打印剩余 seek 位置。

复制代码 代码如下:

-- Opens a file in read
file = io.open("test.lua", "r")

file:seek("end",-25)
print(file:read("*a"))

-- closes the opened file
file:close()

会得到类似下面的一些输出。

复制代码 代码如下:

 sample2 test.lua
--test

可以使用各种不同的模式和参数了解 Lua文件操作能力。

时间: 2024-10-31 22:28:45

Lua中的文件I/O操作教程_Lua的相关文章

Lua中的文件I/O操作教程

  这篇文章主要介绍了Lua中的文件I/O操作教程,是Lua入门学习中的基础知识,需要的朋友可以参考下 Lua中I/O库用于读取和处理文件.有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符. 对于下面的例子中,我们将使用一个示例文件test.lua,如下图所示. 代码如下: -- sample test.lua -- sample2 test.lua 一个简单的文件打开操作使用下面的语句. 代码如下: file = io.open (filename [, mode]) 各种文

Lua中if语句嵌套的使用教程_Lua

 在Lua编程内嵌if-else语句,这意味着可以使用一个 if 或 else if 在另一个语句if或else if 语句中.语法 if语句的嵌套语法如下: 复制代码 代码如下: if( boolean_expression 1) then    --[ Executes when the boolean expression 1 is true --]    if(boolean_expression 2)    then       --[ Executes when the boolea

Lua中for循环语句的使用教程_Lua

 for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.语法 Lua编程语言的for循环的语法是: 复制代码 代码如下: for init,max/min value, increment do    statement(s) end 下面是控制在一个循环的流程:     初始化步骤首先被执行,并且仅一次.这个步骤可让您声明和初始化任何循环控制变量.     接着是max/min,这是最大或最小值,直到该循环继续执行.它在内部创建了一个条件检查的初值和最大值/最小值之间进行比较.

Lua中遍历文件操作代码实例

  这篇文章主要介绍了Lua中遍历文件操作代码实例,本文直接给出示例代码,需要的朋友可以参考下 写的一个关于遍历文件的程序段 记录一下咯 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 --[[检查所有.txt文件 比如A.txt中第一行规定有20列,但是在X行中多输入一个Tab,则输出:A表的X行填写不规范,行末有多余填写 ]]   getinfo = io.popen('dir .

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt

Java中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的. InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象. 用F

Lua中for循环语句的使用教程

  这篇文章主要介绍了Lua中for循环语句的使用教程,是Lua入门学习中的基础知识,需要的朋友可以参考下 for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环. 语法 Lua编程语言的for循环的语法是: 代码如下: for init,max/min value, increment do statement(s) end 下面是控制在一个循环的流程: 初始化步骤首先被执行,并且仅一次.这个步骤可让您声明和初始化任何循环控制变量. 接着是max/min,这是最大或最小值,直到该

Lua中if语句嵌套的使用教程

  这篇文章主要介绍了Lua中if语句嵌套的使用教程,是Lua入门学习中的基础知识,需要的朋友可以参考下 在Lua编程内嵌if-else语句,这意味着可以使用一个 if 或 else if 在另一个语句if或else if 语句中. 语法 if语句的嵌套语法如下: 代码如下: if( boolean_expression 1) then --[ Executes when the boolean expression 1 is true --] if(boolean_expression 2)

详细讲解Python中的文件I/O操作

  这篇文章主要介绍了Python中的文件I/O操作,是Python入门中的基础知识,需要的朋友可以参考下 本章将覆盖所有在Python中使用的基本I/O功能.有关更多函数,请参考标准Python文档. 打印到屏幕上: 产生输出最简单的方法是使用print语句,可以通过用逗号分隔的零个或多个表达式.该函数将传递到一个字符串表达式,并将结果写到标准输出,如下所示: ? 1 2 3 #!/usr/bin/python   print "Python is really a great languag