Package com.prineside.luaj.lib.jse
Class JseIoLib
- All Implemented Interfaces:
com.esotericsoftware.kryo.KryoSerializable
Subclass of
IoLib
and therefore LibFunction
which implements the lua standard io
library for the JSE platform.
It uses RandomAccessFile to implement seek on files.
Typically, this library is included as part of a call to org.luaj.vm2.lib.jse.JsePlatform#standardGlobals()
Globals globals = JsePlatform.standardGlobals();
globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
For special cases where the smallest possible footprint is desired,
a minimal set of libraries could be loaded
directly via LuaValue.load(LuaValue)
using code such as:
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
globals.load(new JseIoLib());
globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
However, other libraries such as MathLib are not loaded in this case.
This has been implemented to match as closely as possible the behavior in the corresponding library in C.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.prineside.luaj.lib.IoLib
IoLib.File, IoLib.IoLibV
Nested classes/interfaces inherited from class com.prineside.luaj.LuaValue
LuaValue.NillableSerializer, LuaValue.None
Nested classes/interfaces inherited from class com.prineside.luaj.Varargs
Varargs.ArrayVarargs
-
Field Summary
Fields inherited from class com.prineside.luaj.lib.IoLib
FILE_NAMES, FTYPE_NAMED, FTYPE_STDERR, FTYPE_STDIN, FTYPE_STDOUT, globals, IO_NAMES
Fields inherited from class com.prineside.luaj.lib.LibFunction
name, opcode
Fields inherited from class com.prineside.luaj.LuaFunction
s_metatable
Fields inherited from class com.prineside.luaj.LuaValue
ADD, CALL, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILLABLE_SERIALIZER, NILS, NONE, NOVALS, ONE, POW, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, ZERO
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IoLib.File
openFile
(String filename, boolean readMode, boolean appendMode, boolean updateMode, boolean binaryMode) Open a file in a particular mode.protected IoLib.File
openProgram
(String prog, String mode) Start a new process and return a file for input or outputprotected IoLib.File
tmpFile()
Open a temporary file.protected IoLib.File
Wrap the standard error output.protected IoLib.File
Wrap the standard input.protected IoLib.File
Wrap the standard output.Methods inherited from class com.prineside.luaj.lib.IoLib
_file_close, _file_flush, _file_lines, _file_read, _file_seek, _file_setvbuf, _file_write, _io_close, _io_flush, _io_index, _io_input, _io_lines, _io_open, _io_output, _io_popen, _io_read, _io_tmpfile, _io_type, _io_write, _lines_iter, call, freadall, freadbytes, freadline, freadnumber, freaduntil
Methods inherited from class com.prineside.luaj.lib.TwoArgFunction
call, call, call, invoke
Methods inherited from class com.prineside.luaj.lib.LibFunction
bind, bind, call, newupe, newupl, newupn, read, tojstring, write
Methods inherited from class com.prineside.luaj.LuaFunction
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typename
Methods inherited from class com.prineside.luaj.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, callmt, cBool, cDouble, cFloat, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, cInt, cNcDouble, cNcFloat, cNcInt, cObject, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, cRegObject, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, div, div, div, divInto, eq, eq_b, eqmtcall, equals, error, get, get, get, gettable, gt, gt, gt, gt_b, gt_b, gt_b, gteq, gteq, gteq, gteq_b, gteq_b, gteq_b, illegal, inext, initupvalue1, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isRegObject, isstring, istable, isthread, isuserdata, isuserdata, isvalidkey, len, lenerror, length, listOf, listOf, load, lt, lt, lt, lt_b, lt_b, lt_b, lteq, lteq, lteq, lteq_b, lteq_b, lteq_b, markAsConst, metatableOf, metatag, method, method, method, method, method, method, mod, mod, mod, modFrom, mul, mul, mul, narg, neg, neq, neq_b, next, not, onInvoke, optboolean, optclosure, optdouble, optint, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, presize, raweq, raweq, raweq, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strcmp, strcmp, strongvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tolong, tonumber, toshort, tostring, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf
Methods inherited from class com.prineside.luaj.Varargs
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, dealias, eval, isfunction, isnil, isnoneornil, isnumber, isstring, istable, isTailcall, isthread, isuserdata, isvalue, optboolean, optclosure, optdouble, optfunction, optint, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, type
-
Constructor Details
-
JseIoLib
public JseIoLib()
-
-
Method Details
-
wrapStdin
Description copied from class:IoLib
Wrap the standard input.- Specified by:
wrapStdin
in classIoLib
- Returns:
- File
- Throws:
IOException
-
wrapStdout
Description copied from class:IoLib
Wrap the standard output.- Specified by:
wrapStdout
in classIoLib
- Returns:
- File
- Throws:
IOException
-
wrapStderr
Description copied from class:IoLib
Wrap the standard error output.- Specified by:
wrapStderr
in classIoLib
- Returns:
- File
- Throws:
IOException
-
openFile
protected IoLib.File openFile(String filename, boolean readMode, boolean appendMode, boolean updateMode, boolean binaryMode) throws IOException Description copied from class:IoLib
Open a file in a particular mode.- Specified by:
openFile
in classIoLib
readMode
- true if opening in read modeappendMode
- true if opening in append modeupdateMode
- true if opening in update modebinaryMode
- true if opening in binary mode- Returns:
- File object if successful
- Throws:
IOException
- if could not be opened
-
openProgram
Description copied from class:IoLib
Start a new process and return a file for input or output- Specified by:
openProgram
in classIoLib
- Parameters:
prog
- the program to executemode
- "r" to read, "w" to write- Returns:
- File to read to or write from
- Throws:
IOException
- if an i/o exception occurs
-
tmpFile
Description copied from class:IoLib
Open a temporary file.- Specified by:
tmpFile
in classIoLib
- Returns:
- File object if successful
- Throws:
IOException
- if could not be opened
-