Node.js - 텍스트 파일 쓰기

By JS | Last updated: April 03, 2022

Node.js에서 문자열을 텍스트 파일에 쓰는 방법을 소개합니다.

1. fs.writeFile()으로 텍스트 파일 쓰기

문자열을 텍스트 파일에 쓰는 간단한 방법은 fs.writeFile() 함수를 사용하는 것입니다. 인자로 파일 Path, 문자열, Callback을 전달하면 됩니다. 에러 발생 시 Callback으로 전달됩니다. 기본적으로 파일이 존재하면, 새로운 내용으로 파일을 덮어씁니다. 이전에 저장된 내용이 삭제됩니다.

const fs = require('fs')

const content = 'Hello World'

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

Output:

$ cat test.txt
Hello World

2. fs.writeFileSync()으로 텍스트 파일 쓰기

fs.writeFile()가 async로 파일을 썼다면, fs.writeFileSync()는 sync로 파일을 쓰는 방법입니다. 함수 호출 시, write 완료 후 파일이 리턴됩니다.

const fs = require('fs')

const content = 'Hello World'

try {
  fs.writeFileSync('/tmp/test.txt', content)
  //file written successfully
} catch (err) {
  console.error(err)
}

Output:

$ cat test.txt
Hello World

3. Append 모드로 파일 쓰기 (1)

writeFile() 또는 writeFileSync()로 파일 저장 시, 기본적으로 파일이 존재하면 새로운 내용으로 파일을 덮어씁니다. 즉, 이전에 저장된 내용이 삭제됩니다.

만약 기존에 저장된 내용 뒤에 새로운 내용을 추가하고 싶다면 Append 모드로 파일을 쓰면 됩니다. mode는 아래와 같이 content 인자 다음에 { flag: 'a+' }처럼 append mode에 대한 flag를 전달합니다.

const fs = require('fs')

const content = 'Hello World'

fs.writeFile('/tmp/test.txt', content, { flag: 'a+' }, err => {
  if (err) {
    console.error(err)
    return
  }
  //file written successfully
})

위의 코드를 여러번 호출하고, 파일을 확인해보면 아래와 같이 기존 파일의 마지막에 텍스트가 추가되어 저장된 것을 확인할 수 있습니다.

$ cat test.txt
Hello WorldHello WorldHello World

4. Append 모드로 파일 쓰기 (2)

appendFile()사용 방법은 writeFile()와 동일하지만 파일을 쓸 때, 파일이 존재하면 파일의 마지막에 텍스트를 추가합니다.

const fs = require('fs')

const content = 'Hello World'

fs.appendFile('test.txt', content, err => {
  if (err) {
    console.error(err)
    return
  }
  //done!
})

Output:

$ cat test.txt
Hello WorldHello WorldHello World
Loading script...
codechachaCopyright ©2019 codechacha