Funciones

io : Entrada / salida, manejo de archivos.

Funciones

file io.open (string path, string mode)
 Abrir archivo en cualquier modo.
file io.open (string path)
 Abrir archivo en modo lectura.
nil io.close (file fd)
 Cierra un archivo.
string io.read (file fd, string format)
 Lee datos desde un archivo.
string io.read (file fd)
 Lee una línea desde un archivo.
function io.lines (string path)
 Función iteradora, linea a linea.
nil io.write (file fd,....)
 Escribe datos en un archivo.
nil io.flush (file fd)
 Salva los datos escritos en el archivo.
nil io.seek (file fd, string donde)
 Setea o devuelve la posición actual del puntero en un archivo.
nil io.seek (file fd, string donde, int desplazamiento)
 Mueve el puntero de posición en un archivo.
nil io.setvbuf (file fd, string modo)
 Establece el modo en cómo se escribiran los datos en un archivo.

Descripción detallada

Manejo de archivos.


Documentación de las funciones

file io.open ( string  path,
string  mode 
)

Abrir archivo en cualquier modo.

Notas:
Si abres en modo lectura/escritura, no es recomendado escribir inmediatamente después de leer, ni viceversa, sería conveniente interponer un seek de por medio.

Parámetros:
path La ruta del archivo a abrir.
mode Uno de los siguientes:

  • "r" - Modo lectura. (Por defecto)
  • "w" - Modo escritura.
  • "a" - Modo adición.
  • "r+" - Lectura/Escritura. Puntero al inicio, los datos pre-existentes se conservan.
  • "w+" - Lectura/Escritura. Puntero al inicio, los datos pre-existentes se eliminan.
  • "a+" - Lectura/Escritura. Puntero al final del archivo, los datos pre-existentes se conservan.
  • "rb" - Lectura, datos del tipo binario (datos de archivos).
  • "wb" - Escritura, datos del tipo binario (datos de archivos).
  • "ab" - Adición, datos del tipo binario (datos de archivos).
Devuelve:
Un descriptor de archivo, o nil en caso de error, más un mensaje de error.
Ejemplos:
corutinas.lua.
file io.open ( string  path  ) 

Abrir archivo en modo lectura.

Parámetros:
path La ruta del archivo a abrir.
Devuelve:
Un descriptor de archivo, o nil en caso de error, más un mensaje de error.
nil io.close ( file  fd  ) 

Cierra un archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
Devuelve:
Nada.
string io.read ( file  fd,
string  format 
)

Lee datos desde un archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
format Tipo de datos a leer, uno de los siguientes:

  • "*n" - Lee un número. Usando este formato se devuelve un valor tipo number, no string.
  • "*a" - Lee el resto del fichero completo, comenzando desde la posición actual.
  • "*l" - Lee la siguiente linea. Éste es el formato por defecto.
  • Un número - Si se especifica un número, se leerán ésta cantidad de bytes o carácteres.
Devuelve:
Los datos leídos, o nil si no se pudieron leer datos o no quedan más datos.
string io.read ( file  fd  ) 

Lee una línea desde un archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
Devuelve:
Los datos leídos, o nil si no se pudieron leer datos o no quedan más datos.
function io.lines ( string  path  ) 

Función iteradora, linea a linea.

Parámetros:
path La ruta del archivo a abrir.
Devuelve:
Una función iteradora, para usar en construcciones tipo for xxx in io.lines("ruta")
nil io.write ( file  fd,
....   
)

Escribe datos en un archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
... Cantidad variable de argumentos extra, que pueden ser números o strings.
Devuelve:
Nada.
Ejemplos:
corutinas.lua.
nil io.flush ( file  fd  ) 

Salva los datos escritos en el archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
Devuelve:
Nada.
nil io.seek ( file  fd,
string  donde 
)

Setea o devuelve la posición actual del puntero en un archivo.

Parámetros:
fd Descriptor de archivo previamente abierto.
donde Uno de los siguientes:

  • "set" - Setea la posición al inicio, y devuelve 0.
  • "cur" - Devuelve la posición actual desde el inicio del archivo.
  • "end" - Setea la posición al final, y devuelve el tamaño del archivo.
Devuelve:
Depende de sus argumentos.
nil io.seek ( file  fd,
string  donde,
int  desplazamiento 
)

Mueve el puntero de posición en un archivo.

Por ejemplo, si se usa io.seek(archivo,"set",20), colocará el puntero 20 bytes de distancia desde el inicio. ( Se saltará los primeros 20 bytes ).

Parámetros:
fd Descriptor de archivo previamente abierto.
donde Uno de los siguientes:

  • "set" - Desde el inicio.
  • "cur" - Desde la posición actual.
  • "end" - Desde el final del archivo.
desplazamiento Desplazamiento a tener en cuenta, desde "donde".
Devuelve:
Devuelve la posición dónde haya quedado el puntero, contada desde el inicio del archivo.
nil io.setvbuf ( file  fd,
string  modo 
)

Establece el modo en cómo se escribiran los datos en un archivo.

Para asegurarse de que los datos se escriben, y no tener en cuenta los búffers de escritura, es correcto utilizar io.flush(archivo);

Parámetros:
fd Descriptor de archivo previamente abierto.
modo Uno de los siguientes:

  • "no" - Sin búffer, los datos son escritos inmediatamente.
  • "full" - Sólo se escriben cuando se llena el búffer de escritura.
  • "line" - Sólo se escribe cada vez que alcanza una nueva línea "\n".
Devuelve:
Nada.