File
The File
class represents a file with methods for reading, seeking, and obtaining file stats. It’s returned by the open function.
Properties
Property | Type | Description |
---|---|---|
path | string | The absolute path to the file. |
Methods
Method | Description |
---|---|
read | Reads up to buffer.byteLength bytes from the file into the passed buffer . Returns a promise resolving to the number of bytes read. |
seek | Sets the file position indicator for the file to the passed offset bytes. Returns a promise resolving to the new offset. |
stat | Returns a promise resolving to a FileInfo object with information about the file. |
Example
import { open, SeekMode } from 'k6/experimental/fs';
let file;
(async function () {
file = await open('bonjour.txt');
})();
export default async function () {
// Seek to the beginning of the file
await file.seek(0, SeekMode.Start);
// About information about the file
const fileinfo = await file.stat();
if (fileinfo.name != 'bonjour.txt') {
throw new Error('Unexpected file name');
}
const buffer = new Uint8Array(4);
let totalBytesRead = 0;
while (true) {
// Read into the buffer
const bytesRead = await file.read(buffer);
if (bytesRead == null) {
// EOF
break;
}
// Do something useful with the content of the buffer
totalBytesRead += bytesRead;
// If bytesRead is less than the buffer size, we've read the whole file
if (bytesRead < buffer.byteLength) {
break;
}
}
// Check that we read the expected number of bytes
if (totalBytesRead != fileinfo.size) {
throw new Error('Unexpected number of bytes read');
}
}