How to - Use files
All the functions to read and write files are organized under the object “IO” that can easily be use throw the variable “io”.
Read files
Read a text file to a string
var a_string = io.readFileString("abc123.txt");
All the contents of the “abc123.txt” file will assigned to the variable “a_string”.
If the file is in a zip file you can use the shortcut (‘::’):
var a_string = io.readFileString("aZipFile.zip::abc123.txt")
Read a text file as an array of strings
var an_array = io.readFileAsArray("abc123.txt");
print(an_array[0]); // Print the first line
print(an_array[1]); // Print the second line
The variable “an_array” will have an entry for each line on the file “abc123.txt”.
Read a json file
var a_json = io.readFile("abc123.json");
print(a_json.something); // prints the element 'something' from the json object
If the file is in a zip file you can use the shortcut (‘::’):
var a_json = io.readFile("aZipFile.zip::abc123.txt");
Read a yaml file
var a_json = io.readFileYAML("abc123.yaml");
print(a_json.something); // prints the element 'something' from the json object
Reads a json object from a YAML file.
Write files
Write a string to a text file
var a_string = "The first line\nThe second line";
io.writeFileString("abc123.txt", a_string);
If you want to append lines instead of rewriting the entire file:
io.writeFileString("abc123.log", "Another line\n", void 0, true);
Write a text array to a text file
var lines = [];
lines.push("The first line");
lines.push("The second line");
io.writeFileAsArray("abc123.txt", lines);
Write a json object to a text file
var obj = { x: -1, y: 1 };
io.writeFile("abc123.json", obj);
Write a json object to a yaml file
var obj = { x: -1, y: 1 };
io.writeFileYAML("abc123.yaml", obj);
Handle newline delimited JSON files
Read Newline delimited JSON from a text file
io.readLinesNDJSON("abc123.json", (line) => { sprint(line); });
Write a Newline delimited JSON to a text file
var logline = { date: now(), level: "INFO", message: "a log message" };
io.writeLineNDJSON("abc123.json", logline);