NodeJS에서 스트림 읽기, 쓰기 및 파이프라이닝의 5가지 예

12152 단어 streamnodejavascript

1. 입력을 출력 스트림으로 파이핑(예제 파일)




const fs = require('fs');
let input = fs.createReadStream('/var/www/examples/test.txt');
let output = fs.createWriteStream('/tmp/out.txt');
input.pipe(output);


  • require('fs') - 파일 시스템과 함께 작동하는 라이브러리,
  • fs.createReadStream( - 데이터를 읽을 스트림 생성(이 경우 파일),
  • fs.createWriteStream - 파일을 열고 쓰기 스트림 생성,
  • /var/www/examples/test.txt - 스트림 읽기에 대한 파일 경로,
  • /tmp/out.txt - 스트림을 쓸 파일 경로,
  • .pipe( - 입력 스트림을 출력으로 파이프합니다(이 경우 입력 파일에서 읽고 출력에 씁니다).

  • Open original 또는 edit on Github .

    2. 파이프라인 스트림에 선호되는 방법




    const fs = require('fs');
    const { pipeline } = require('stream');
    
    let input = fs.createReadStream('/var/www/examples/test.txt');
    let output = fs.createWriteStream('/tmp/out.txt');
    
    pipeline(input, output, (err) => console.log(err));
    


  • require('fs') - 파일 시스템과 함께 작동하는 라이브러리,
  • fs.createReadStream( - 데이터를 읽을 스트림 생성(이 경우 파일),
  • fs.createWriteStream - 파일을 열고 쓰기 스트림 생성,
  • /var/www/examples/test.txt - 스트림 읽기에 대한 파일 경로,
  • /tmp/out.txt - 스트림을 쓸 파일 경로,
  • pipeline - 파이프라인에 스트림(왼쪽에서 오른쪽)이 지정되고 처리 후 모든 개체가 적절하게 파괴됨
  • (err) => console.log(err) - pipeline()의 마지막 인수는 항상 오류 콜백입니다.

  • Open original 또는 edit on Github .

    3. 입력 스트림을 Buffer로 읽는 방법




    const fs = require('fs');
    let input = fs.createReadStream('/var/www/examples/test.txt');
    
    input.on('data', buf => {
      console.log(buf);
    });
    


  • require('fs') - 파일 시스템과 함께 작동하는 라이브러리,
  • fs.createReadStream( - 데이터를 읽을 스트림 생성(이 경우 파일),
  • /var/www/examples/test.txt - 스트림 읽기에 대한 파일 경로,
  • .on('data' - 스트림에서 날짜 읽기 처리,
  • buf - 버퍼가 스트림에서 읽은 데이터 청크를 가져옵니다.

  • Open original 또는 edit on Github .

    4. 입력 스트림을 문자열로 읽는 방법




    const fs = require('fs');
    let input = fs.createReadStream('/var/www/examples/test.txt');
    
    const chunks = [];
    input.on('data', buf => chunks.push(buf));
    input.on('end', () => console.log( Buffer.concat(chunks).toString() ))
    


  • require('fs') - 파일 시스템과 함께 작동하는 라이브러리,
  • fs.createReadStream( - 데이터를 읽을 스트림 생성(이 경우 파일),
  • /var/www/examples/test.txt - 스트림 읽기에 대한 파일 경로,
  • .on('data' - 스트림에서 날짜 읽기 처리,
  • chunks.push(buf) - 각 청크를 배열로 푸시합니다.
  • Buffer.concat(chunks) - 모든 청크를 단일 버퍼로 결합합니다.
  • .toString() - 버퍼를 문자열로 변환,
  • input.on('end' - 스트림 읽기가 완료되면 실행됩니다.

  • Open original 또는 edit on Github .

    5. Transform 인터페이스를 사용하여 스트림을 변환하는 방법




    const fs = require('fs');
    const { Transform } = require("stream");
    
    let input = fs.createReadStream('/var/www/examples/test.txt');
    
    const my_transform = new Transform({
      transform(chunk, encoding, callback) {
        callback(null, 'TRANSFORMED: ' + chunk.toString());
      },
    });
    
    my_transform.on('data', buf => console.log(buf.toString()));
    
    input.pipe(my_transform);
    


  • require('fs') - 파일 시스템과 함께 작동하는 라이브러리,
  • fs.createReadStream( - 데이터를 읽을 스트림 생성(이 경우 파일),
  • new Transform( - 데이터를 변환하는 새 스트림 생성,
  • transform(chunk, encoding, callback) - 청크 변환 기능,
  • 'TRANSFORMED: ' + chunk.toString() - 변환된 청크를 콜백으로 반환(변환 예제로 TRANSFORMED: 텍스트를 청크에 추가함),
  • .on('data' - 스트림에서 날짜 읽기 처리,
  • .pipe( - 개체를 지정된 스트림으로 파이프합니다(파일에서 읽고 파이프를 변환 스트림으로 읽음).

  • Open original 또는 edit on Github .

    좋은 웹페이지 즐겨찾기