파일 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('읽기 종료');
});


결과화면 : 





반응형

+ Recent posts