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 모듈에서 제공하는 promise 기반 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 {
    // done!
  }
})

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()