파일 Open , close 이벤트 처리
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | var fs = require('fs'); //파일이 없으면 만든다 fs.open('./output1.txt', 'w', function (err, fd) //파일 열기 완료후 call - back { if (err) { console.log('파일 open 에러'); console.dir(err); return; } //파일이 열린 이후, 팡리에다가 쓰기 //쓸 내용을 변수로 따로 만듬 //Buffer 문자열을 담아두는 객체, 길이등을 얻어올 수 있음 또는 다른 문자열과 인코딩방식을 지정해 Buffer 에 쓸 수 있음 var buf = new Buffer('안녕\n!!!'); fs.write(fd, buf, 0, buf.length, //어디서부터 쓸 것인지 버퍼의 시작점과 끝점 지정 function (err, written, buffer) //쓰기가 완료 된 이후 실행되는 call - back { if (err) { console.log('파일 쓰기 에러'); console.dir(err); return; } console.log('쓰기 완료'); fs.close(fd, function () //닫기가 완료된 이후의 call - back { console.log('파일 닫기 완료'); } ); } ); }); |
결과 :
쓰기 완료
파일 닫기 완료
output1.txt :
안녕
!!!
스트림으로 읽어들이는 방식
위 output1.txt 파일에 써진 내용을 읽어들인다
파일을 읽는 중간 중간 data 이벤트가 발생하는데 읽은 파일이 짧던 크던 이 이벤트는 초반 처음에 한번 호출되고
파일이 짧아 로딩 시간이 짧아지게 되면 data 이벤트는 반복하여 호출되지 않는다, 일정 크기 이상이어 중간에 한번씩 호출된다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var fs = require('fs'); var infile = fs.createReadStream('./output1.txt', { flags: 'r' }); //스트림으로 읽어들이는 과정 도는 읽기가 완료 됐을때 이벤트가 발생된다 // 중간 중간 읽어 들이는 중간 이벤트 infile.on('data', function (data) { console.log('읽어들인 데이터 : ' + data); }); //읽기가 완료 됐을때의 이벤트 infile.on('end', function () { console.log('읽기 종료'); }); |
결과화면 :
반응형
'서버(Server) > Server&Nodejs&DB' 카테고리의 다른 글
nodejs : http 서버 생성 및 클라이언트 connection, request 처리 (0) | 2018.05.01 |
---|---|
Nodejs : 로그파일, Winston Logger 사용하기 (1) | 2018.04.30 |
Nodejs : 파일 쓰기 동기(writeFileSync), 비동기(writeFile) (0) | 2018.04.30 |
nodejs 파일 읽기 방식 : readFileSync: 동기 , readFile :비동기 (0) | 2018.04.30 |
nodejs : EventEmitter 상속을 통한 이벤트 호출 (2) (0) | 2018.04.30 |