fs (File System) module in Node.js

In Node.js, you can read a file using the built-in fs (File System) module. There are different ways to read files, depending on your use case:

1. Synchronous Reading (Blocking)

This method blocks the execution until the file is fully read. Suitable for scripts where blocking isn't an issue.

const fs = require('fs');

try {
  const data = fs.readFileSync('file.txt', 'utf8'); // Specify the encoding if you want a string
  console.log(data);
} catch (err) {
  console.error('Error reading file:', err);
}

2. Asynchronous Reading (Non-Blocking)

This method is preferred for non-blocking, scalable applications.

const fs = require('fs');

fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) {
    console.error('Error reading file:', err);
    return;
  }
  console.log(data);
});

3. Using Promises

If you prefer working with promises or async/await, you can use fs.promises:

const fs = require('fs').promises;

async function readFile() {
  try {
    const data = await fs.readFile('file.txt', 'utf8');
    console.log(data);
  } catch (err) {
    console.error('Error reading file:', err);
  }
}

readFile();

4. Reading Large Files (Streaming)

If you're dealing with a large file, using streams is more memory-efficient:

const fs = require('fs');

const stream = fs.createReadStream('file.txt', { encoding: 'utf8' });

stream.on('data', chunk => {
  console.log('Chunk received:', chunk);
});

stream.on('error', err => {
  console.error('Error reading file:', err);
});

stream.on('end', () => {
  console.log('File reading completed.');
});

Choose the Right Method

  • Small files: Use readFileSync or readFile for simplicity.
  • Large files: Use streams to handle memory efficiently.
  • Modern applications: Use promises (fs.promises) or async/await for clean and readable code.

댓글

이 블로그의 인기 게시물

Creating an synchronous HTTP request using Spring RestTemplate

how to delete all issues on project in sentry, 센트리 이슈 삭제하기

동남아 국가들이 사용하는 언어

형태소 분석 태그

MySQL GRANT

max_active_runs of Airflow

Read a file in Java, 자바 파일 읽기

dagrun_timeout of Airflow

ssh-copy-id in ansible

Create fixed rounded button by Tailwind