• Lua-文件操作


    简单模式和完全模式

    • 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。
    • 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法。

    打开文件

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

    mode 选项

    模式 简介
    r 只读,文件必须存在。默认。
    w 只写,文件存在,则写入时覆盖原有内容。文件不存在,则创建文件。
    a 附加写入,文件存在,则从文件末尾写入。文件不存在,则创建文件。
    b 二进制模式,与r/w/a结合使用。
    + 表示文件可读写,与r/w/a结合使用。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    file01 = io.open("test.lua", "r")
    file02 = io.open("test.lua", "rb")
    file03 = io.open("test.lua", "w")
    file04 = io.open("test.lua", "wb")
    file05 = io.open("test.lua", "a")
    file06 = io.open("test.lua", "ab")
    file07 = io.open("test.lua", "r+")
    file08 = io.open("test.lua", "r+b")
    file09 = io.open("test.lua", "w+")
    file10 = io.open("test.lua", "w+b")
    file11 = io.open("test.lua", "a+")
    file12 = io.open("test.lua", "a+b")

    从文件读取数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    file01 = io.open("test.lua", "r")
    io.input(file01)
    print("简单模式读取的文件内容:n"..io.read())

    -- 完全模式
    file02 = io.open("test.lua", "r")
    print("完全模式读取的文件内容:n"..file02:read())


    -- 关闭文件流
    io.close()
    大专栏  Lua-文件操作ne">file02:close()

    向文件写入数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    file01 = io.open("test.lua", "a")
    io.output(file01)
    io.write("-- 这是一行简单模式写入的文本。")

    -- 完全模式
    file02 = io.open("test.lua", "a")
    file02:write("-- 这是一行完全模式写入的文本。")


    -- 关闭文件流
    io.close(file01)
    file02:close()

    关闭文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    file01 = io.open("test.lua", "r")
    io.input(file01)
    file02 = io.open("test.lua", "r")


    io.close(file01)

    -- 完全模式
    file02:close()

    方法

    简单模式,io的方法

    调用方式:io.方法名()。如:io.read()

    1. read()

    输入文件一行数据,并把游标指向下一行开始地址。

    参数:

    参数 说明
    “*l” 读取下一行,在文件尾 (EOF) 处返回 nil。默认。
    “*n” 读取一个数字并返回它。
    “*a” 从当前位置读取整个文件。
    number 返回一个指定字符个数的字符串,或在 EOF 时返回 nil。
    1. tmpfile()

    返回一个临时文件句柄,该文件以更新模式(附加)打开,程序结束时自动删除。

    1. type(file)

    检测file是否一个可用的文件句柄。

    1. flush()

    向文件写入缓冲中的所有数据。

    1. lines(optional filename)

    打开指定的文件filename为只读模式并返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil,并自动关闭文件。

    若不带参数时io.lines() io.input():lines(); 读取默认输入设备的内容,但结束时不关闭文件

    完全模式,文件句柄的方法

    调用方式:文件句柄:方法名()。如:file:read()。

    1. read()

    作用和参数与简单模式一致。

    1. seek(optional whence, optional offset)

    设置和获取当前文件位置,成功则返回最终的文件位置(按字节),失败则返回nil加错误信息。

    参数 whence 取值:

    说明
    “cur” 从当前位置开始。默认
    “set” 从文件头开始
    “end” 从文件尾开始

    offset,偏移量,默认为0。

    不带参数file:seek()则返回当前位置。
    file:seek(“set”)则定位到文件头。
    file:seek(“end”)则定位到文件尾并返回文件大小。

    1. flush()

    向文件写入缓冲中的所有数据。

  • 相关阅读:
    Charles的使用教程
    Sublime Text 3 无法使用package control安装插件解决办法
    sublime常用快捷键整理(未完待续)
    常用 Git 命令清单
    js判断的执行顺序
    使用CSS3 Media Queries实现网页自适应(转)
    移动前端开发之viewport的深入理解(转)
    javascript之函数节流
    String常用方法总结
    腾讯面试题1
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371099.html
Copyright © 2020-2023  润新知