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('파일 업데이트 완료');
});
});
이 코드는 다음과 같이 동작합니다.
fs.readFile
을 사용하여 기존의 “file.txt” 파일의 전체 내용을 읽습니다.- 읽은 데이터(
data
)에 ” Node.js로 파일 처리하기!” 문자열을 추가하여newData
변수에 저장합니다. - 수정된 전체 내용(
newData
)를 다시fs.writeFile
을 사용하여 같은 파일에 씁니다. 이때, 기존 내용은newData
에 의해 덮어쓰게 되고, 새로운 내용이 추가됩니다.
이 방법을 사용하면 파일의 기존 내용을 유지하면서 새로운 내용을 추가할 수 있으며, 파일의 끝에 내용을 추가하는 작업을 쉽게 처리할 수 있습니다.
이러한 메소드들을 사용하여 Node.js에서 파일 시스템 작업을 효과적으로 수행할 수 있습니다. 각 메소드의 올바른 사용법을 이해하고, 필요에 따라 적절히 사용하는 것이 중요합니다.
참고 문서
관련 이전 게시글
- Node.js 소개 및 윈도우에 설치하는 방법
- Node.js 서버 생성 및 실행하는 방법
- Node.js 파일 읽기: fs.readFile 메서드 활용하는 방법
- Node.js 이벤트 처리하기: on, once, removeListener 메소드
- Node.js 파일 읽기, 쓰기 방법: 동기식 vs 비동기식
이 글이 도움이 되셨다면 공유 부탁 드립니다.