Do it! Node.js 프로그래밍 입문 공부단 2일차 입니다.
파일 관리하기
동기 처리로 파일 읽기 - readFileSync()
이 함수는 파일 내용을 버퍼 또는 문자열 형태로 반환합니다. 버퍼는 자료를 잠시 저장해 두는 임시 메모리 영역인데 자료를 읽어 오거나 다른 곳으로 이동할 때 임시 저장 공간으로 사용합니다.
fs.readFileSync(경로[,옵션])
- 옵션
- encoding: 기본값인 null을 사용하면 버퍼에 있는 값인 바이너리 형태로 반환하고, utf8로 지정하면 사람이 읽을 수 있는 텍스트 형태로 가져옵니다.
- flag: 기본값인 r을 사용하면 읽기모드로 엽니다.
- r: 읽기 & 쓰기
- w: 쓰기
- a: 추가
const fs = require("fs")
const data = fs.readFileSync("./03/example.txt")
const data2 = fs.readFileSync("./03/example.txt", "utf8")
console.log(data)
console.log(data2)
비동기 처리로 파일읽기 - readFile()
fs.readFile(파일[,옵션], 콜백)
- 옵션
- encoding
- flag
- signal : 파일을 읽는 데 시간이 너무 걸릴 경우 signal옵션을 사용해서 중간에 파일읽기를 취소할 수 있습니다.
const fs = require("fs")
fs.readFile("./03/example.txt", "utf8", (err, data) => {
if(err) console.log(err)
console.log(data)
})
파일 존재 여부 체크하기 - existsSync()
fs.existsSync(파일)
동기 처리로 파일에 쓰기 - writeFileSync()
fs.writeFileSync(파일, 내용[, 옵션])
- 옵션 : encoding(기본값 : utf8), flag(기본값: w), mode
- mode: 파일에 사용자의 권한을 설정합니다. (기본값 : 0o666(읽기, 쓰기 권한))
const fs = require("fs")
const data = fs.readFileSync("./03/example.txt", "utf8")
if(fs.existsSync("./03/test.txt")) {
console.log("file already exist")
}
else {
fs.writeFileSync("./03/test.txt", data)
console.log("test.txt : " + fs.readFileSync("./03/test.txt", "utf8"))
}
비동기 처리로 파일에 쓰기 - writeFile()
fs.writeFile(파일, 내용[, 옵션], 콜백)
- 옵션
- encoding
- flag
- mode
- signal : 파일에 내용을 기록할 때 시간이 너무 걸릴 경우 signal 옵션을 사용해서 중간에 파일 쓰기를 취소할 수 있습니다.
const fs = require("fs")
fs.readFile("./03/example.txt", "utf8", (err, data) => {
if(err) console.log(err)
fs.writeFile("./03/test2.txt", data, (err) => {
if(err) console.log(err)
console.log("text2.txt is saved")
})
})
기존 파일에 내용 추가하기 - flag 옵션 사용
(Nx는 N과 같지만 파일이 있을 경우 실패합니다.)
a | 내용을 추가하기 위해 파일을 여는데 없으면 만듭니다. |
ax | a와 같지만 파일이 이미 있으면 실패합니다. |
a+ | 파일을 읽고 내용을 추가하기 위해 파일을 여는데 없으면 만듭니다. |
ax+ | ax와 같지만 파일이 있을 경우 실패합니다. |
as | 동기 처리로 내용을 추가하기 위해 파일을 여는데 없으면 만듭니다. |
w | 쓰기 위해 파일을 여는데 없으면 만듭니다. |
wx | w와 같지만 파일이 있을 경우 실패합니다. |
w+ | 내용을 읽고 쓰기 위해 파일을 여는데 없으면 만듭니다. |
wx+ | w+와 같지만 파일이 있을 경우 실패합니다. |
const fs = require("fs")
let content = `
============================================
새로운 내용 추가
============================================
`
fs.writeFileSync("./03/test.txt", content, {flag: "a"})
기존 파일에 내용 추가하기 - appendFileSync(), appendFile()
기존 파일에 내용을 추가할 때 flag옵션을 사용하지 않고 appendFileSync()나 appendFile()를 사용할 수 있습니다.
fs.appendFileSync(파일, 내용[, 옵션])
fs.appendFile(파일, 내용[, 옵션], 콜백)
- 옵션
- encoding : 기본값 utf8
- mode : 파일에 대한 퍼미션을 지정
- flag : 기본값 w. 기존 파일에 내용 추가시 a사용
const fs = require("fs")
fs.appendFile("./03/test.txt", "\n\n새로운 내용 추가\n\n", (err) => {
if(err) console.log(err)
console.log("appending to file")
})
동기처리로 파일 삭제하기 - unlinkSync()
파일은 존재하지 않는 파일을 삭제해도 오류가 발생하지 않습니다. 그래서 fs 모듈에 있는 existsSync()를 사용해서 해당 파일이 있는지 체크해야 합니다.
const fs = require("fs")
if(!fs.existsSync("./03/text.txt")) console.log("파일이 없습니다.")
else {
fs.unlinkSync("./03/text.txt")
console.log("파일을 삭제했습니다."))
}
비동기 처리로 파일 삭제하기 - unlink()
const fs = require("fs")
if(!fs.existsSync("./03/text.txt")) console.log("파일이 없습니다.")
else fs.unlink("./03/text.txt", () => console.log("파일을 삭제했습니다."))
'Node.js' 카테고리의 다른 글
[Node.js] 노드제이에스 - FS 모듈. 버퍼와 스트림 (0) | 2024.02.04 |
---|---|
[Node.js] 노드제이에스 - fs모듈. 디렉터리 관리하기 (0) | 2024.02.03 |
[Node.js] 노드제이에스 - FS 모듈 (0) | 2024.02.03 |
[Node.js] 노드제이에스 - Path 모듈 (0) | 2024.02.03 |
[Node.js] 노드제이에스 - 노드의 모듈 (0) | 2024.02.02 |
댓글