Difference between revisions of "X File"
From GiderosMobile
(expanded example) |
|||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
| − | |||
<!-- GIDEROSOBJ:file --> | <!-- GIDEROSOBJ:file --> | ||
| − | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
| − | ''' | + | '''Available since:''' Gideros 2011.6<br/> |
| − | === | + | === Description === |
| − | + | A '''file''' object is usually returned by [[io.open]] used to manipulate (read and write) files in lua. | |
| − | === | + | '''NOTE:''' this page and other related '''file''' methods use an X before the name because wiki forbids creating pages starting with '''file''' |
| − | < | + | |
| + | === Examples === | ||
| + | <syntaxhighlight lang="lua"> | ||
--function to copy file | --function to copy file | ||
local function copy(src, dst) | local function copy(src, dst) | ||
| − | + | local srcf = io.open(src, "rb") | |
| − | + | local dstf = io.open(dst, "wb") | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | local size = 2^13 -- good buffer size (8K) | |
| − | + | while true do | |
| + | local block = srcf:read(size) | ||
| + | if not block then break end | ||
| + | dstf:write(block) | ||
| + | end | ||
| + | srcf:close() | ||
| + | dstf:close() | ||
end | end | ||
--function to check if file exists | --function to check if file exists | ||
local function exists(file) | local function exists(file) | ||
| − | + | local f = io.open(file, "rb") | |
| − | + | if f == nil then return false end | |
| − | + | f:close() return true | |
end | end | ||
--usage | --usage | ||
if not exists("|D|database.db") then | if not exists("|D|database.db") then | ||
| − | + | copy("database.db", "|D|database.db") | |
end | end | ||
| − | </ | + | </syntaxhighlight> |
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
| − | === | + | === Methods === |
| − | [[ | + | [[x_file:close|file:close]] ''closes file''<br/><!--GIDEROSMTD:file:close() closes file--> |
| − | <!-- GIDEROSMTD:file:close() closes file --> | + | [[x_file:flush|file:flush]] ''saves any written data to file''<br/><!--GIDEROSMTD:file:flush() saves any written data to file--> |
| − | [[ | + | [[x_file:lines|file:lines]] ''returns an iterator function''<br/><!--GIDEROSMTD:file:lines() returns an iterator function--> |
| − | <!-- GIDEROSMTD:file:flush() saves any written data to file --> | + | [[x_file:read|file:read]] ''reads file according to given formats, returns read values or nil''<br/><!--GIDEROSMTD:file:read(format1,...) reads file according to given formats, returns read values or nil--> |
| − | [[ | + | [[x_file:seek|file:seek]] ''sets file seek pos''<br/><!--GIDEROSMTD:file:seek(whence,offset) sets file seek pos, whence="set"|"cur"|"end", defaults "curr",0, returns file pos--> |
| − | <!-- GIDEROSMTD:file:lines() returns iterator function | + | [[x_file:write|file:write]] ''writes strings or numbers to file''<br/><!--GIDEROSMTD:file:write(value1,...) writes strings or numbers to file--> |
| − | [[ | ||
| − | <!-- GIDEROSMTD:file:read(format1,...) reads file according to given formats, returns read values or nil --> | ||
| − | [[ | ||
| − | <!-- GIDEROSMTD:file:seek(whence,offset) sets file pos, whence="set"|"cur"|"end", defaults "curr",0, returns file pos --> | ||
| − | [[ | ||
| − | <!-- GIDEROSMTD:file:write(value1,...) writes strings or numbers to file --> | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
| − | === | + | === Events === |
| − | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} | ||
Latest revision as of 08:54, 4 November 2023
Supported platforms: ![]()
![]()
![]()
![]()
![]()
![]()
![]()
Available since: Gideros 2011.6
Description
A file object is usually returned by io.open used to manipulate (read and write) files in lua.
NOTE: this page and other related file methods use an X before the name because wiki forbids creating pages starting with file
Examples
--function to copy file
local function copy(src, dst)
local srcf = io.open(src, "rb")
local dstf = io.open(dst, "wb")
local size = 2^13 -- good buffer size (8K)
while true do
local block = srcf:read(size)
if not block then break end
dstf:write(block)
end
srcf:close()
dstf:close()
end
--function to check if file exists
local function exists(file)
local f = io.open(file, "rb")
if f == nil then return false end
f:close() return true
end
--usage
if not exists("|D|database.db") then
copy("database.db", "|D|database.db")
end
Methodsfile:close closes file |
EventsConstants |