Чтение текстовых файлов
Подготовим текстовый файл с несколькими строками текста. Файл следует сохранить в папке data вашего скетча.
String[] textLines;
void setup()
{
size( 640, 200 );
textLines = loadStrings("cat.txt");
noLoop();
}
void draw()
{
background( 255 );
for ( int i = 0; i < textLines.length; i++ ) {
println( i + ". " + textLines[i] );
}
}
Функция loadStrings() загружает файл и возвращает массив переменных типа String. Мы можем получить доступ к каждой строке по отдельности. Текст выводится в консоли с нумерацией строк.
CSV
Если нужно работать с файлами CSV, в которых данные разделены запятыми, то можно задействовать дополнительные функции.
String[] textLines;
void setup()
{
size( 640, 200 );
textLines = loadStrings("cat.csv");
noLoop();
}
void draw()
{
background( 255 );
for ( int i = 0; i < textLines.length; i++ ) {
String[] currentLine = split(textLines[i], ",");
for (int j = 0; j < currentLine.length; j++){
println( currentLine[j] );
}
}
}
Разница заключается в применении функции split(). Первый параметр использует строку, содержащую данные, разделённых запятой. Второй параметр указывает на символ, который служит разделителем.
XML
XML xml;
void setup()
{
xml = loadXML("some.xml");
noLoop();
}
void draw()
{
XML[] kids = xml.getChildren("element");
for (int i = 0; i < kids.length; i++) {
int id = kids[i].getInt("id");
String url = kids[i].getString("url");
String txt = kids[i].getContent();
println(i + ": " + id + " " + url + " " + txt);
}
}
XML-файл имеет определённую структуру. Различные методы позволяет извлечь нужные данные. Метод getChildren() возвращает дочерние узлы в виде массива.
Узел может иметь атрибуты. Если это целое число, то вызываем getInt(), если строка - getString().
Метод getContent() позволяет получить данные между тегами.