const fs = require( "fs" );
1.filename : '불러올 파일의 위치(경로)'를 뜻한다.
2. [options] : 가지고 오는 데이터를 어떻게 인코딩을 해줄지 정해주는 인자이다.
3. callback : 콜백함수로, err와 data를 인자로 받는다.
fs.readFile(filename, [options], callback)
- filename의 파일을 [options]의 방식으로 읽은 후 callback으로 전달된 함수를 호출한다.(비동기)
fs.readFileSync(filename, [options])
- filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환한다.(동기적)
const fs = require('fs');
//1)비동기적 읽기 : fs.readFile
fs.readfile('text.txt', 'utf8', (err, data => {
console.log('비동기적인 ' + data);
//2)동기적 읽기 : fs.readFileSync
let text = fs.readFileSync('text.txt', 'utf8');
console.log('동기적인 ' + text);
})
fs.writeFile(filename, data, [options], callback)
- filename의 파일에 [options]의 방식으로 data 내용을 쓴 후 callback 함수를 호출한다.(비동기적)
fs.writeFileSync(filename, data, [options])
- filename의 파일에 [options]의 방식으로 data 내용을 작성한다.(동기적)
const fs = require('fs');
let data = 'fs.writeFile test'
//1)비동기적 읽기 : fs.readFile
fs.writeFile('text.txt', data, 'utf8', function(err) {
console.log('비동기적 파일 쓰기'); });
//2)동기적 읽기 : fs.readFileSync
fs.writeFileSync('text.txt', data. 'utf8');
console.log('동기적 파일 쓰기');
})
//파일이 없는데 읽으려 하는 경우의 예외처리(에러)
const fs = require('fs');
try {
let data = fs.readFileSync('text.txt', 'utf8')
}
catch(err) {
console.log(err);
-비동기적 방식에서는 예외가 발생하면 callback 함수의 매개변수 err에 전달되므로, 따로 try~catch 구문을 사용할 필요가 없다.
//파일이 없는데 읽으려 하는 경우의 예외처리(에러)
const fs = require('fs');
fs.readFile('text.txt', 'utf8', function(err, data) {
if(err) {
console.log(err);
}
else {
return data;
}