fs 모듈을 활용한 파일 읽기, 작성, 디렉토리 생성, 파일 삭제
대부분의 기능들이 비동기
const fs = require("fs");
// reading files
fs.readFile("./docs/text.txt", (err, data) => {
if (err) {
console.log(err);
}
console.log(data.toString());
});
console.log("last line");
// writing files
fs.writeFile("./docs/text.txt", "hello, world!", () => {
console.log("file was written");
});
fs.writeFile("./docs/hello.txt", "hello, again!", () => {
console.log("file was written");
});
// directories
if (!fs.existsSync("./assets")) {
fs.mkdir("./assets", (err) => {
if (err) {
console.log(err);
}
console.log("folder created");
});
} else {
fs.rmdir("./assets", (err) => {
if (err) {
console.log(err);
}
console.log("folder deleted");
});
}
// deleteing files
if (fs.existsSync("./docs/deleteMe.txt")) {
fs.unlink("./docs/deleteMe.txt", (err) => {
if (err) {
console.log(err);
}
console.log("file deleted");
});
}
입출력 스트림
const fs = require("fs");
const readStream = fs.createReadStream("./docs/hello.txt", {
encoding: "utf8", // or use toString()
});
const writeStream = fs.createWriteStream("./docs/writeMe.txt");
readStream.on("data", (chunk) => {
console.log("------NEW CHUNK-------");
console.log(chunk);
writeStream.write("\nNEW CHUNK\n");
writeStream.write(chunk);
});
// piping (위와 같은 기능)
readStream.pipe(writeStream);
참고 : https://www.youtube.com/watch?v=OIBIXYLJjsI&list=PL4cUxeGkcC9jsz4LDYc6kv3ymONOKxwBU&index=2