Lectura y Escritura de Archivos
Nyx provee las funciones integradas write_file y read_file para I/O de archivos simple sin necesidad de ningún import. Escribir un archivo es una sola llamada; volver a leerlo devuelve el contenido completo como un String. Este ejemplo también muestra str_byte_length, que cuenta bytes crudos en lugar de caracteres.
Código
// Escribir y leer un archivo: write_file, read_file
fn main() -> int {
let path: String = "/tmp/nyx_example_11.txt"
let contenido: String = "Hola desde Nyx!\nSegunda línea.\nTercera línea."
// Escribir el archivo
write_file(path, contenido)
print("Archivo escrito en: " + path)
// Leer el archivo
let leido: String = read_file(path)
print("Contenido leido:")
print(leido)
// Verificar longitud
print("Bytes: " + int_to_string(str_byte_length(leido)))
return 0
}
Salida
Archivo escrito en: /tmp/nyx_example_11.txt Contenido leido: Hola desde Nyx! Segunda línea. Tercera línea. Bytes: 47
Explicación
write_file(path, content) crea o sobrescribe el archivo en path con el string dado. Los caracteres de nueva línea (\n) incrustados en el string se convierten en saltos de línea reales dentro del archivo. No hace falta abrir ni cerrar ningún manejador de archivo — la función se encarga de todo internamente.
read_file(path) lee el archivo completo y devuelve su contenido como un único String. Para archivos grandes usarías I/O por streaming desde std/io, pero para la mayoría de los scripts este enfoque de una sola pasada es perfectamente suficiente.
str_byte_length devuelve la cantidad de bytes en un string codificado en UTF-8, que puede diferir de la cantidad de puntos de código Unicode. Esto es útil cuando te importa el tamaño de almacenamiento y no la cantidad de caracteres.