0
# I/O & Data Loading
1
2
File loading capabilities for JSON, XML, images, fonts, and other assets, plus data export functionality for saving content and data structures.
3
4
## Capabilities
5
6
### File Loading Functions
7
8
Core functions for loading various file types and data formats.
9
10
```javascript { .api }
11
/**
12
* Load JSON data from file or URL
13
* @param {string} path - Path to JSON file
14
* @param {object} [jsonpOptions] - JSONP options for cross-domain requests
15
* @param {string} [datatype] - Data type hint
16
* @param {function} [callback] - Success callback
17
* @param {function} [errorCallback] - Error callback
18
* @returns {object} JSON data object
19
*/
20
function loadJSON(path, jsonpOptions, datatype, callback, errorCallback);
21
22
/**
23
* Load text file as array of strings (one per line)
24
* @param {string} filename - Path to text file
25
* @param {function} [callback] - Success callback
26
* @param {function} [errorCallback] - Error callback
27
* @returns {string[]} Array of strings
28
*/
29
function loadStrings(filename, callback, errorCallback);
30
31
/**
32
* Load tabular data (CSV/TSV) as p5.Table
33
* @param {string} filename - Path to data file
34
* @param {object|string} [options] - Loading options or file extension
35
* @param {function} [callback] - Success callback
36
* @param {function} [errorCallback] - Error callback
37
* @returns {p5.Table} Table object
38
*/
39
function loadTable(filename, options, callback, errorCallback);
40
41
/**
42
* Load XML data
43
* @param {string} filename - Path to XML file
44
* @param {function} [callback] - Success callback
45
* @param {function} [errorCallback] - Error callback
46
* @returns {p5.XML} XML object
47
*/
48
function loadXML(filename, callback, errorCallback);
49
50
/**
51
* Load binary data
52
* @param {string} file - Path to binary file
53
* @param {function} [callback] - Success callback
54
* @param {function} [errorCallback] - Error callback
55
* @returns {object} Binary data object
56
*/
57
function loadBytes(file, callback, errorCallback);
58
```
59
60
### Data Export Functions
61
62
Functions for saving data and canvas content to files.
63
64
```javascript { .api }
65
/**
66
* Save data to file
67
* @param {object|string} objectOrFilename - Data object or filename
68
* @param {string} [filename] - Filename if first param is data
69
* @param {object} [options] - Save options
70
*/
71
function save(objectOrFilename, filename, options);
72
73
/**
74
* Save JSON data to file
75
* @param {object} json - JSON data object
76
* @param {string} filename - Output filename
77
* @param {boolean} [optimize] - Whether to optimize/minimize JSON
78
*/
79
function saveJSON(json, filename, optimize);
80
81
/**
82
* Save string array to text file
83
* @param {string[]} list - Array of strings
84
* @param {string} filename - Output filename
85
* @param {string} [extension] - File extension
86
* @param {boolean} [isCRLF] - Use Windows line endings
87
*/
88
function saveStrings(list, filename, extension, isCRLF);
89
90
/**
91
* Save table data as CSV
92
* @param {p5.Table} table - Table to save
93
* @param {string} filename - Output filename
94
* @param {object} [options] - Save options
95
*/
96
function saveTable(table, filename, options);
97
98
/**
99
* Save canvas as image file
100
* @param {string|p5.Element} [selectedCanvas] - Canvas element or filename
101
* @param {string} [filename] - Output filename
102
* @param {string} [extension] - File extension (png, jpg)
103
*/
104
function saveCanvas(selectedCanvas, filename, extension);
105
```
106
107
### Data Structure Classes
108
109
Classes for working with structured data.
110
111
```javascript { .api }
112
/**
113
* Table for working with tabular data (CSV/TSV)
114
*/
115
class p5.Table {
116
/** Array of column names */
117
columns;
118
/** Array of p5.TableRow objects */
119
rows;
120
121
/**
122
* Add a new row
123
* @param {p5.TableRow} [row] - Row to add (creates new if not provided)
124
* @returns {p5.TableRow} The added row
125
*/
126
addRow(row);
127
128
/**
129
* Remove a row
130
* @param {number} id - Row index to remove
131
*/
132
removeRow(id);
133
134
/**
135
* Get row by index
136
* @param {number} rowID - Row index
137
* @returns {p5.TableRow} Row object
138
*/
139
getRow(rowID);
140
141
/**
142
* Get all rows
143
* @returns {p5.TableRow[]} Array of row objects
144
*/
145
getRows();
146
147
/**
148
* Find first row matching criteria
149
* @param {string} value - Value to search for
150
* @param {string} column - Column to search in
151
* @returns {p5.TableRow} First matching row
152
*/
153
findRow(value, column);
154
155
/**
156
* Find all rows matching criteria
157
* @param {string} value - Value to search for
158
* @param {string} column - Column to search in
159
* @returns {p5.TableRow[]} Array of matching rows
160
*/
161
findRows(value, column);
162
163
/**
164
* Add a new column
165
* @param {string} [title] - Column name
166
*/
167
addColumn(title);
168
169
/**
170
* Get column count
171
* @returns {number} Number of columns
172
*/
173
getColumnCount();
174
175
/**
176
* Get row count
177
* @returns {number} Number of rows
178
*/
179
getRowCount();
180
}
181
182
/**
183
* Table row for individual row operations
184
*/
185
class p5.TableRow {
186
/**
187
* Get cell value by column name or index
188
* @param {string|number} column - Column name or index
189
* @returns {string} Cell value
190
*/
191
get(column);
192
193
/**
194
* Get cell value as number
195
* @param {string|number} column - Column name or index
196
* @returns {number} Cell value as number
197
*/
198
getNum(column);
199
200
/**
201
* Get cell value as string
202
* @param {string|number} column - Column name or index
203
* @returns {string} Cell value as string
204
*/
205
getString(column);
206
207
/**
208
* Set cell value
209
* @param {string|number} column - Column name or index
210
* @param {*} value - Value to set
211
*/
212
set(column, value);
213
214
/**
215
* Set cell value as number
216
* @param {string|number} column - Column name or index
217
* @param {number} value - Numeric value to set
218
*/
219
setNum(column, value);
220
221
/**
222
* Set cell value as string
223
* @param {string|number} column - Column name or index
224
* @param {string} value - String value to set
225
*/
226
setString(column, value);
227
}
228
229
/**
230
* XML document parsing and manipulation
231
*/
232
class p5.XML {
233
/**
234
* Get child element by name or index
235
* @param {string|number} name - Element name or index
236
* @returns {p5.XML} Child element
237
*/
238
getChild(name);
239
240
/**
241
* Get all child elements
242
* @param {string} [name] - Filter by element name
243
* @returns {p5.XML[]} Array of child elements
244
*/
245
getChildren(name);
246
247
/**
248
* Get element content as string
249
* @returns {string} Element content
250
*/
251
getContent();
252
253
/**
254
* Set element content
255
* @param {string} text - Content to set
256
*/
257
setContent(text);
258
259
/**
260
* Get attribute value
261
* @param {string} name - Attribute name
262
* @returns {string} Attribute value
263
*/
264
getAttribute(name);
265
266
/**
267
* Set attribute value
268
* @param {string} name - Attribute name
269
* @param {*} value - Attribute value
270
*/
271
setAttribute(name, value);
272
273
/**
274
* Check if attribute exists
275
* @param {string} name - Attribute name
276
* @returns {boolean} True if attribute exists
277
*/
278
hasAttribute(name);
279
}
280
```
281
282
See complete usage examples and detailed API documentation in the p5.js reference.