Node.js 파일 열기, 읽기, 쓰기, 닫기 방법: open, read, write, close

Node.js 파일 열기, 읽기, 쓰기, 닫기 방법: open, read, write, close

파일 시스템 작업은 많은 서버 사이드 애플리케이션에서 필수적인 부분입니다. Node.js에서는 fs 모듈을 통해 이러한 작업을 수행할 수 있으며, 이 모듈은 파일을 열고, 읽고, 쓰고, 닫는 기본적인 메소드를 제공합니다. 이 글에서는 이 네 가지 메소드의 사용법에 대해 알아보겠습니다.

open 메소드

fs.open 메소드는 파일을 열 때 사용됩니다. 이 메소드는 파일 경로, 플래그(읽기, 쓰기 등을 지정)와 콜백 함수를 인자로 받습니다. 파일이 성공적으로 열리면, 콜백 함수의 두 번째 인자로 파일 디스크립터가 제공됩니다.

const fs = require('fs');

fs.open('file.txt', 'r', (err, fd) => {
  if (err) throw err;
  console.log('파일이 성공적으로 열렸습니다.', fd);
});

read 메소드

파일에서 데이터를 읽어들이려면 fs.read 메소드를 사용합니다. 이 메소드는 파일 디스크립터, 버퍼, 버퍼의 어느 부분에 데이터를 쓸지, 읽을 바이트 수, 파일 내의 위치 등을 인자로 받습니다.

const buffer = Buffer.alloc(1024);

fs.read(fd, buffer, 0, buffer.length, null, (err, num) => {
  if (err) throw err;
  console.log('읽은 데이터:', buffer.toString());
});

write 메소드

파일에 데이터를 쓰려면 fs.write 메소드를 사용합니다. 이 메소드는 파일 디스크립터, 쓸 데이터, 콜백 함수를 인자로 받습니다. 데이터 쓰기가 완료되면 콜백 함수가 호출됩니다.

const data = 'Hello, Node.js';

fs.write(fd, data, (err) => {
  if (err) throw err;
  console.log('파일 쓰기 완료');
});

close 메소드

파일 작업을 마친 후에는 fs.close 메소드를 사용하여 파일을 닫아야 합니다. 이 메소드는 파일 디스크립터와 콜백 함수를 인자로 받습니다. 파일이 성공적으로 닫히면 콜백 함수가 호출됩니다.

fs.close(fd, (err) => {
  if (err) throw err;
  console.log('파일이 성공적으로 닫혔습니다.');
});

사용 예제

const fs = require('fs');
const filePath = 'file.txt';

// 파일 읽기
fs.readFile(filePath, 'utf8', (err, data) => {
  if (err) throw err;
  
  console.log('기존 데이터:', data);
  const newData = data + ' Node.js로 파일 처리하기!'; // 새로운 내용 추가
  
  // 파일 쓰기: 수정된 전체 내용을 파일에 다시 씀
  fs.writeFile(filePath, newData, 'utf8', (err) => {
    if (err) throw err;
    console.log('파일 업데이트 완료');
  });
});

이 코드는 다음과 같이 동작합니다.

  1. fs.readFile을 사용하여 기존의 “file.txt” 파일의 전체 내용을 읽습니다.
  2. 읽은 데이터(data)에 ” Node.js로 파일 처리하기!” 문자열을 추가하여 newData 변수에 저장합니다.
  3. 수정된 전체 내용(newData)를 다시 fs.writeFile을 사용하여 같은 파일에 씁니다. 이때, 기존 내용은 newData에 의해 덮어쓰게 되고, 새로운 내용이 추가됩니다.

이 방법을 사용하면 파일의 기존 내용을 유지하면서 새로운 내용을 추가할 수 있으며, 파일의 끝에 내용을 추가하는 작업을 쉽게 처리할 수 있습니다.

fs 모듈의 readFile, writeFile 메소드 사용 예제 코드 실행 결과

이러한 메소드들을 사용하여 Node.js에서 파일 시스템 작업을 효과적으로 수행할 수 있습니다. 각 메소드의 올바른 사용법을 이해하고, 필요에 따라 적절히 사용하는 것이 중요합니다.

참고 문서

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤