Skip to main content
promises.readFile - fs - Node documentation
function promises.readFile

Usage in Deno

import { promises } from "node:fs";
readFile(
options?: ({ encoding?: null | undefined; flag?: OpenMode | undefined; } & Abortable) | null,
): Promise<Buffer>

Asynchronously reads the entire contents of a file.

If no encoding is specified (using options.encoding), the data is returned as a Buffer object. Otherwise, the data will be a string.

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

When the path is a directory, the behavior of fsPromises.readFile() is platform-specific. On macOS, Linux, and Windows, the promise will be rejected with an error. On FreeBSD, a representation of the directory's contents will be returned.

An example of reading a package.json file located in the same directory of the running code:

import { readFile } from 'node:fs/promises';
try {
  const filePath = new URL('./package.json', import.meta.url);
  const contents = await readFile(filePath, { encoding: 'utf8' });
  console.log(contents);
} catch (err) {
  console.error(err.message);
}

It is possible to abort an ongoing readFile using an AbortSignal. If a request is aborted the promise returned is rejected with an AbortError:

import { readFile } from 'node:fs/promises';

try {
  const controller = new AbortController();
  const { signal } = controller;
  const promise = readFile(fileName, { signal });

  // Abort the request before the promise settles.
  controller.abort();

  await promise;
} catch (err) {
  // When a request is aborted - err is an AbortError
  console.error(err);
}

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

Any specified FileHandle has to support reading.

Parameters

filename or FileHandle

optional
options: ({ encoding?: null | undefined; flag?: OpenMode | undefined; } & Abortable) | null

Return Type

Promise<Buffer>

Fulfills with the contents of the file.

readFile(
options: ({ encoding: BufferEncoding; flag?: OpenMode | undefined; } & Abortable) | BufferEncoding,
): Promise<string>

Asynchronously reads the entire contents of a file.

Parameters

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

options: ({ encoding: BufferEncoding; flag?: OpenMode | undefined; } & Abortable) | BufferEncoding

An object that may contain an optional flag. If a flag is not provided, it defaults to 'r'.

Return Type

Promise<string>
readFile(
options?:
(
ObjectEncodingOptions
& Abortable
& { flag?: OpenMode | undefined; }
)

| BufferEncoding
| null
,
): Promise<string | Buffer>

Asynchronously reads the entire contents of a file.

Parameters

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

optional
options:
(
ObjectEncodingOptions
& Abortable
& { flag?: OpenMode | undefined; }
)

| BufferEncoding
| null

An object that may contain an optional flag. If a flag is not provided, it defaults to 'r'.

Return Type

Promise<string | Buffer>