이 포스팅의 예제는 node.js v20.5.0 입니다.
먼저 fs는 file system의 약자입니다. api 문서 링크 : http://nodejs.org/api/fs.html
상당히 많은 함수를 포함하고 있는 파일시스테 모듈이지만 모듈의 반절은 권한관련입니다
(node.js 의 개발자가 지독한 유닉스 개발자로 알려져 있습니다. 디버깅모듈이 콘솔로 된것만으로도 알수 있겠지요?)
많이 쓰는 모듈 몇가지 예제입니다.
1. 파일 확인
const fs = require('fs');
fs.access('test1.txt', fs.constants.F_OK, (err) => {
console.log(err ? "no exists!" : "it's there");
});
fs.exists() 파일이 존재 하는지 확인합니다. 예제의 경우 test1.txt 파일이 존재 하는지 확인합니다.
2. 파일 생성
var fs = require('fs');
var file = 'test1.txt';
fs.open(file,'w',function(err,fd){
if (err) throw err;
console.log('file open complete');
});
fs.open() 해당 파일을 엽니다. 옵션 'w' 의 경우 해당 파일이 없다면 생성합니다.
해당 옵션에 따라 파일의 접근이 달라집니다.
r | 파일을 읽기로 열며 해당 파일이 없다면 에러발생 |
r+ | 읽기/쓰기 상태로 파일을 열며 파일이 없다면 에러 발생 |
w | 쓰기로 파일을 열며 존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀. |
w+ | 읽기/쓰기로 열며 존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀. |
a | 추가 쓰기로 열며 파일이 존재하지 않으면 만듬. |
a+ | 추가 읽기/쓰기로 열며 파일이 존재 하지 않으면 만듬. |
3. 파일 이름 변경
var fs = require('fs');
fs.rename('test1.txt', 'text2.txt', function (err) {
if (err) throw err;
console.log('renamed complete');
});
fs.rename() 해당파일의 이름을 변경합니다. 예제는 test1.txt -> test2.txt 로 변경합니다.
해당 파일이 없거나 권한이 없다면 에러가 발생합니다. 또한 변경하려는 이름의 같은 이름의 파일이 존재하면 에러가 발생합니다.
4. 파일 삭제
var fs = require('fs');
fs.unlink('text2.txt', function (err) {
if (err) throw err;
console.log('successfully deleted text2.txt');
});
fs.unlink() 파일을 삭제 합니다. 예제의 경우 test2.txt 파일을 삭제 합니다.
해당 파이 없거나 권한이 없다면 에러가 발생합니다.
5.파일 읽기
var fs = require('fs');
fs.readFile('test1.txt', 'utf8', function(err, data) {
console.log(data);
});
fs.readFile() 해당 파일을 읽습니다. 예제의 경우 test1.txt 파일을 읽고 콘솔로 출력합니다.
6. 파일 쓰기
var fs = require('fs');
var data = 'file system example!!';
fs.writeFile('text1.txt', data, 'utf8', function(error){
console.log('write end')
});
fs.writeFile() 해당파일에 내용을 씁니다. 예제의 경우 test1.txt파일에 data의 내용을 씁니다.
만일 파일이 존재 하지 않으면 파일을 생성후 내용을 씁니다. 파일의 내용을 이어서 쓰진 않습니다.
7.파일 이어서 쓰기
const fs = require('fs').promises;
async function appendToFile(filename, data) {
try {
await fs.appendFile(filename, data);
console.log(`The data was appended to ${filename}!`);
} catch (err) {
console.error(`Error appending to ${filename}:`, err);
}
}
// 사용 예시
appendToFile('text1.txt', 'data to append\n');
fs.appendFile() 해당 파일에 내용을 이어서 씁니다. 예제의 경우 test1.txt 에 'data to append' 를 이어서 씁니다. 파일이 없을경우 새로 생성하여 씁니다.
'Node.js > 3. 기본객체' 카테고리의 다른 글
3-4 stream (0) | 2025.01.06 |
---|---|
3-2 node.js 기본 모듈 리스트 (0) | 2025.01.06 |
3-1 node.js 전역 객체 (0) | 2025.01.06 |