본문 바로가기

Node.js

[Node.js] 파일 입출력, 표준 입출력 | Stream, pipe()

반응형

 

 

 

 

파일에서 읽고 쓰기를 위한 스트림 생성

Node.js는 파일 읽기와 쓰기 작업을 위해 스트림을 사용할 수 있다.

아래 코드는 'fs'(파일 시스템) 모듈을 사용해 읽기 스트림과 쓰기 스트림을 각각 생성한다.

스트림은 데이터의 흐름을 쉽게 관리할 수 있도록 도와준다.

const fileIn = require('fs').createReadStream('output.txt');
const fileOut = require('fs').createWriteStream('output2.txt');

 

createReadStream와 createWriteStream을 사용하여 파일 읽기와 쓰기를 위한 스트림을 각각 생성한다.

 

 

 

 

스트림을 이용한 파일 복사

이전에 만든 읽기 스트림(fileIn)과 쓰기 스트림(fileOut)을 이용해 파일의 내용을 복사할 수 있다.

.pipe() 메소드는 데이터의 소스 스트림에서 목적지 스트림으로 데이터를 전달한다.

fileIn.pipe(fileOut);

 

fileIn 스트림의 데이터를 fileOut 스트림으로 전달하여 파일 내용을 복사한다.

 

반응형

 

파일에서 데이터를 읽어 표준 출력에 출력하기

파일에서 데이터를 읽은 후, 이벤트 리스너를 이용해 해당 데이터를 처리한다.

const file = require('fs').createReadStream('output.txt');

file.on('data', function (data) {
  data = data.toString();
  process.stdout.write(data);
});

 

위 코드에서 output.txt 파일을 읽기 위한 스트림을 생성한다.

파일로부터 데이터를 가지고 데이터를 변환하여 문자열로 만든 뒤,

표준 출력장치(process.stdout)를 사용하여 데이터를 출력한다.

 

 

 

 

표준 입력으로부터 데이터를 받아 파일에 쓰기

입력받은 데이터를 data 이벤트를 통해 들어온 데이터를 처리하여 파일에 쓸 수 있다.

const file = require('fs').createWriteStream('output.txt');

process.stdin.on('data', function (data) {
  data = data.toString();
  file.write(data);
});

 

위 코드에서 표준 입력장치로부터 데이터를 입력받는다.

그리고 이벤트 리스너를 통해 들어온 데이터를 처리하여 파일에 쓰는 작업을 수행한다.

 

 

 

 

표준 입력에서 데이터를 받아 표준 출력으로 한 줄씩 출력하기

표준 입력장치에서 데이터를 받아 이벤트 리스너를 통해 한 줄씩 표준 출력장치로 출력한다.

process.stdin.on('data', function (data) {
  data = data.toString();
  process.stdout.write(`${data}${require('os').EOL}`);
  console.log(data);
});

 

위 코드에서 표준 입력장치로부터 데이터를 받은 후,

'data' 이벤트를 통해 이벤트 리스너가 처리한다.

입력받은 데이터를 문자열로 변환하고,

표준 출력장치에 한 줄씩 출력한다.

 

 

 

 

 

반응형