Function writeFile

  • When file is a filename, asynchronously writes data to the file, replacing the file if it already exists. data can be a string or a buffer.

    When file is a file descriptor, the behavior is similar to callingfs.write() directly (which is recommended). See the notes below on using a file descriptor.

    The encoding option is ignored if data is a buffer.

    The mode option only affects the newly created file. See open for more details.

    import { writeFile } from 'node:fs';
    import { Buffer } from 'node:buffer';

    const data = new Uint8Array(Buffer.from('Hello Node.js'));
    writeFile('message.txt', data, (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
    });

    If options is a string, then it specifies the encoding:

    import { writeFile } from 'node:fs';

    writeFile('message.txt', 'Hello Node.js', 'utf8', callback);

    It is unsafe to use fs.writeFile() multiple times on the same file without waiting for the callback. For this scenario, createWriteStream is recommended.

    Similarly to fs.readFile - fs.writeFile is a convenience method that performs multiple write calls internally to write the buffer passed to it. For performance sensitive code consider using createWriteStream.

    It is possible to use an AbortSignal to cancel an fs.writeFile(). Cancelation is "best effort", and some amount of data is likely still to be written.

    import { writeFile } from 'node:fs';
    import { Buffer } from 'node:buffer';

    const controller = new AbortController();
    const { signal } = controller;
    const data = new Uint8Array(Buffer.from('Hello Node.js'));
    writeFile('message.txt', data, { signal }, (err) => {
    // When a request is aborted - the callback is called with an AbortError
    });
    // When the request should be aborted
    controller.abort();

    Aborting an ongoing request does not abort individual operating system requests but rather the internal buffering fs.writeFile performs.

    Parameters

    • file: PathOrFileDescriptor

      filename or file descriptor

    • data: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer | ReadableStream | ReadableStream<any>

      The data to write. If a stream is provided, it will be read to completion.

    • options: WriteFileOptions

      Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. If encoding is not supplied, the default of 'utf8' is used. If mode is not supplied, the default of 0o666 is used. If mode is a string, it is parsed as an octal integer. If flag is not supplied, the default of 'w' is used.

    • callback: NoParamCallback

    Returns void

    Since

    v0.1.29

    Since

    Web Streams API support since Node v17.0.0

  • Asynchronously writes data to a file, replacing the file if it already exists.

    Parameters

    Returns void

    Since

    Web Streams API support since Node v17.0.0

  • Asynchronously writes data to a file, replacing the file if it already exists.

    Parameters

    • path: PathOrFileDescriptor

      A path to a file. If a URL is provided, it must use the file: protocol. URL support is experimental. If a file descriptor is provided, the underlying file will not be closed automatically.

    • data: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer | ReadableStream | ReadableStream<any>

      The data to write. If a stream is provided, it will be read to completion.

    • Optional options: WriteFileOptions

      Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. If encoding is not supplied, the default of 'utf8' is used. If mode is not supplied, the default of 0o666 is used. If mode is a string, it is parsed as an octal integer. If flag is not supplied, the default of 'w' is used.

    Returns Promise<void>

    Since

    Web Streams API support since Node v17.0.0

Generated using TypeDoc