Difference between revisions of "X File"

From GiderosMobile
(Created page with "__NOTOC__ '''Supported platforms:''' <br/> '''Available since:''' Gideros 2011.6<br/> === Description === file object is usually returned by `io.open` used to manipulate (read...")
 
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' <br/>
+
<!-- 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/>
 
'''Available since:''' Gideros 2011.6<br/>
 +
 
=== Description ===
 
=== Description ===
file object is usually returned by `io.open` used to manipulate (read and write) files in lua{|-
+
A '''file''' object is usually returned by [[io.open]] used to manipulate (read and write) files in lua.
| style="width: 50%;"|
+
 
 +
'''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
 +
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
 +
</syntaxhighlight>
 +
 
 +
{|-
 +
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
| style="width: 50%;"|
+
[[x_file:close|file:close]] ''closes file''<br/><!--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-->
 +
[[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-->
 +
[[x_file:write|file:write]] ''writes strings or numbers to file''<br/><!--GIDEROSMTD:file:write(value1,...) writes strings or numbers to file-->
 +
 
 +
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 08:54, 4 November 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
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

Methods

file:close closes file
file:flush saves any written data to file
file:lines returns an iterator function
file:read reads file according to given formats, returns read values or nil
file:seek sets file seek pos
file:write writes strings or numbers to file

Events

Constants