Skip to content

Node.js를 사용하여 파일 쓰기

파일 쓰기

Node.js에서 파일에 쓰는 가장 쉬운 방법은 fs.writeFile() API를 사용하는 것입니다.

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.writeFile('/Users/joe/test.txt', content, err => {
  if (err) {
    console.error(err)
  } else {
    // file written successfully
  }
})

동기식으로 파일 쓰기

또는 동기 버전 fs.writeFileSync를 사용할 수 있습니다.

javascript
const fs = require('node:fs')
const content = 'Some content!'

try {
  fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
  console.error(err)
}

fs/promises 모듈에서 제공하는 프로미스 기반 fsPromises.writeFile() 메서드를 사용할 수도 있습니다.

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.writeFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()

기본적으로 이 API는 파일이 이미 있는 경우 해당 파일의 내용을 바꿉니다.

플래그를 지정하여 기본값을 수정할 수 있습니다.

javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])

자주 사용하게 될 플래그는 다음과 같습니다.

플래그설명파일이 없으면 생성됩니까
r+이 플래그는 읽기 및 쓰기를 위해 파일을 엽니다.
w+이 플래그는 읽기 및 쓰기를 위해 파일을 열고 파일 시작 부분에 스트림을 배치합니다.
a이 플래그는 쓰기를 위해 파일을 열고 파일 끝에 스트림을 배치합니다.
a+이 스트림은 읽기 및 쓰기를 위해 파일을 열고 파일 끝에 스트림을 배치합니다.

플래그에 대한 자세한 내용은 fs 설명서에서 확인할 수 있습니다.

파일에 콘텐츠 추가

파일에 추가하는 것은 파일 내용을 새 내용으로 덮어쓰지 않고 추가하려는 경우에 유용합니다.

예시

파일 끝에 내용을 추가하는 편리한 방법은 fs.appendFile()(및 해당 fs.appendFileSync() 대응)입니다.

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.appendFile('file_log', content, err => {
  if (err) {
    console.error(err)
  } else {
    // 완료!
  }
})

Promise를 사용한 예시

다음은 fsPromises.appendFile() 예시입니다.

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.appendFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()