Class IoLib
- All Implemented Interfaces:
 com.esotericsoftware.kryo.KryoSerializable
- Direct Known Subclasses:
 JseIoLib
LibFunction which implements the
 core of the lua standard io library.
 It contains the implementation of the io library support that is common to the JSE and JME platforms. In practice on of the concrete IOLib subclasses is chosen: org.luaj.vm2.lib.jse.JseIoLib for the JSE platform, and
The JSE implementation conforms almost completely to the C-based lua library, while the JME implementation follows closely except in the area of random-access files, which are difficult to support properly on JME.
Typically, this library is included as part of a call to either
 
 Globals globals = JsePlatform.standardGlobals();
 globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
  
 In this example the platform-specific org.luaj.vm2.lib.jse.JseIoLib library will be loaded, which will include
 the base functionality provided by this class, whereas the org.luaj.vm2.lib.jse.JsePlatform would load the
 org.luaj.vm2.lib.jse.JseIoLib.
 
 To instantiate and use it directly,
 link it into your globals table via LuaValue.load(LuaValue) using code such as:
 
 
 Globals globals = new Globals();
 globals.load(new JseBaseLib());
 globals.load(new PackageLib());
 globals.load(new OsLib());
 globals.get("io").get("write").call(LuaValue.valueOf("hello, world\n"));
  
 This has been implemented to match as closely as possible the behavior in the corresponding library in C.
- 
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.prineside.luaj.LuaValue
LuaValue.NillableSerializer, LuaValue.NoneNested classes/interfaces inherited from class com.prineside.luaj.Varargs
Varargs.ArrayVarargs - 
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String[]protected static final intEnumerated value representing a file type for a named fileprotected static final intEnumerated value representing stderrprotected static final intEnumerated value representing stdinprotected static final intEnumerated value representing stdoutprotected Globalsstatic final String[]Fields inherited from class com.prineside.luaj.lib.LibFunction
name, opcodeFields inherited from class com.prineside.luaj.LuaFunction
s_metatableFields 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 TypeMethodDescription_file_close(LuaValue file) _file_flush(LuaValue file) _file_lines(Varargs args) _file_read(LuaValue file, Varargs subargs) _file_seek(LuaValue file, String whence, int offset) _file_setvbuf(LuaValue file, String mode, int size) _file_write(LuaValue file, Varargs subargs) _io_output(LuaValue filename) _lines_iter(LuaValue file, boolean toclose, Varargs args) Callthiswith 2 arguments, including metatag processing, and return only the first return value.static LuaValuestatic LuaValuefreadbytes(IoLib.File f, int count) static LuaValuefreadline(IoLib.File f, boolean withend) static LuaValuestatic LuaValuefreaduntil(IoLib.File f, boolean lineonly, boolean withend) protected abstract IoLib.FileopenFile(String filename, boolean readMode, boolean appendMode, boolean updateMode, boolean binaryMode) Open a file in a particular mode.protected abstract IoLib.FileopenProgram(String prog, String mode) Start a new process and return a file for input or outputprotected abstract IoLib.FiletmpFile()Open a temporary file.protected abstract IoLib.FileWrap the standard error output.protected abstract IoLib.FileWrap the standard input.protected abstract IoLib.FileWrap the standard output.Methods inherited from class com.prineside.luaj.lib.TwoArgFunction
call, call, call, invokeMethods inherited from class com.prineside.luaj.lib.LibFunction
bind, bind, call, newupe, newupl, newupn, read, tojstring, writeMethods inherited from class com.prineside.luaj.LuaFunction
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typenameMethods 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, valueOfMethods 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 
- 
Field Details
- 
FTYPE_STDIN
protected static final int FTYPE_STDINEnumerated value representing stdin- See Also:
 
 - 
FTYPE_STDOUT
protected static final int FTYPE_STDOUTEnumerated value representing stdout- See Also:
 
 - 
FTYPE_STDERR
protected static final int FTYPE_STDERREnumerated value representing stderr- See Also:
 
 - 
FTYPE_NAMED
protected static final int FTYPE_NAMEDEnumerated value representing a file type for a named file- See Also:
 
 - 
IO_NAMES
 - 
FILE_NAMES
 - 
globals
 
 - 
 - 
Constructor Details
- 
IoLib
public IoLib() 
 - 
 - 
Method Details
- 
wrapStdin
Wrap the standard input.- Returns:
 - File
 - Throws:
 IOException
 - 
wrapStdout
Wrap the standard output.- Returns:
 - File
 - Throws:
 IOException
 - 
wrapStderr
Wrap the standard error output.- Returns:
 - File
 - Throws:
 IOException
 - 
openFile
protected abstract IoLib.File openFile(String filename, boolean readMode, boolean appendMode, boolean updateMode, boolean binaryMode) throws IOException Open a file in a particular mode.- Parameters:
 filename-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
 - 
tmpFile
Open a temporary file.- Returns:
 - File object if successful
 - Throws:
 IOException- if could not be opened
 - 
openProgram
Start a new process and return a file for input or output- 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
 - 
call
Description copied from class:LuaValueCallthiswith 2 arguments, including metatag processing, and return only the first return value.If
thisis aLuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALLmetatag and call that.If the return value is a
Varargs, only the 1st value will be returned. To get multiple values, useLuaValue.invoke()instead.To call
thisas a method call, useLuaValue.method(LuaValue)instead.- Specified by:
 callin classTwoArgFunction- Parameters:
 modname- First argument to supply to the called functionenv- Second argument to supply to the called function- Returns:
 - First return value 
(this(arg1,arg2)), orLuaValue.NILif there were none. - See Also:
 
 - 
_io_flush
- Throws:
 IOException
 - 
_io_tmpfile
- Throws:
 IOException
 - 
_io_close
- Throws:
 IOException
 - 
_io_input
 - 
_io_output
 - 
_io_type
 - 
_io_popen
- Throws:
 IOException
 - 
_io_open
- Throws:
 IOException
 - 
_io_lines
 - 
_io_read
- Throws:
 IOException
 - 
_io_write
- Throws:
 IOException
 - 
_file_close
- Throws:
 IOException
 - 
_file_flush
- Throws:
 IOException
 - 
_file_setvbuf
 - 
_file_lines
 - 
_file_read
- Throws:
 IOException
 - 
_file_seek
- Throws:
 IOException
 - 
_file_write
- Throws:
 IOException
 - 
_io_index
 - 
_lines_iter
- Throws:
 IOException
 - 
freadbytes
- Throws:
 IOException
 - 
freaduntil
public static LuaValue freaduntil(IoLib.File f, boolean lineonly, boolean withend) throws IOException - Throws:
 IOException
 - 
freadline
- Throws:
 IOException
 - 
freadall
- Throws:
 IOException
 - 
freadnumber
- Throws:
 IOException
 
 -