이 가이드에서는 Node.js에서 쓰기 가능한 스트림 작업을 설명합니다.
Node.js에서 쓰기 가능한 스트림으로 작업하는 방법은 무엇입니까?
“ 쓰기 가능 ” 스트림을 사용하여 파일에 새 데이터를 삽입하거나 다른 임의 스트림의 내용을 배치할 수 있습니다. 데이터 변환 또는 배치는 대부분 ' 파이프() ' 방법. 이 방법을 사용하면 데이터 충돌 가능성을 줄이면서 콘텐츠 변환 및 할당 프로세스가 더욱 편리해집니다.
통사론
쓰기 가능한 스트림은 아래 메소드를 호출하여 생성됩니다.
fs. createWriteStream ( '대상파일.ext' ) ;
위 구문에서 “ creatWriteStream() '는 가져온 '의 개체에 의해 호출됩니다. FS ” 모듈이며, 데이터가 쓰여질 파일이 매개변수로 전달됩니다.
Node.js의 쓰기 가능한 스트림에 대한 몇 가지 예를 살펴보겠습니다.
예제 1: 쓰기 가능한 스트림을 사용하여 다른 파일의 내용 쓰기
아래 예에서는 임의 파일이 읽기 가능한 스트림을 통해 전송된 다음 이 파일 콘텐츠가 쓰기 가능한 스트림에서 사용 가능한 다른 파일에 배치됩니다.
fsObj였습니다 = 필요하다 ( 'fs' ) ;
const 데이터 스트림 = fsObj. createReadStream ( 'mynewfile1.txt' ) ;
const writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
데이터 스트림. 파이프 ( writeStream ) ;
위 코드에 대한 설명:
- 첫째, “ FS ' 모듈을 가져오고 해당 객체는 새 ' fsObj ” 변수입니다.
- 다음으로, “ fasObj '를 호출합니다. createReadStream() ” 읽을 수 있는 스트림을 생성하고 선택한 읽을 수 있는 파일을 매개변수로 전달하는 메서드입니다.
- 그런 다음 '를 호출하여 쓰기 가능한 스트림이 생성됩니다. createWriteStream() ” 메소드를 사용하여 제공된 파일에 내용을 작성합니다.
- 위에서 호출한 메소드의 결과를 ' 데이터 스트림 ' 그리고 ' writeStream ” 변수를 각각 사용합니다.
- 마지막으로 “. 파이프() ” 메소드 다음에 “ 데이터 스트림 ” 그리고 “ writeStream ' 변수.
이제 아래 명령을 실행하여 포함된 파일(controlFlow.js)을 실행합니다.
예제 2: “stream.write()” 메서드를 사용하여 파일에 콘텐츠 쓰기
이 예에서는 ' 쓰다() ” 메소드는 쓰기 가능한 스트림을 통해 사용 가능한 파일에 데이터를 쓰는 데 사용됩니다.
fsObj였습니다 = 필요하다 ( 'fs' ) ;const httpObj = 필요하다 ( 'http' ) ;
const 서브로컬 = httpObj. 서버 생성 ( ( 요청, 응답 ) => {
노력하다 {
const 셀스트림 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. 쓰다 ( '대상 파일에 배치할 데이터입니다.' ) ;
cellStream. 끝 ( ) ;
응답. 끝 ( '쓰기 가능한 스트림을 통해 작성된 데이터' )
}
잡다 ( 오류 ) {
콘솔. 오류 ( 오류 ) ;
}
} ) ;
ServeLocaly. 듣다 ( 8080 , ( ) => {
콘솔. 통나무 ( '서버가 로컬 호스트 포트 번호: '8080'에서 실행 중입니다.' )
) ;
위 코드에 대한 설명은 다음과 같습니다.
- 먼저, 필수 '를 가져옵니다. FS ' 그리고 ' http ” 모듈을 저장하고 해당 객체를 “ fsObj ' 그리고 ' httpObj ” 변수를 각각 사용합니다.
- 다음으로, '를 호출하여 서버가 생성되었습니다. 생성서버() ' 메서드를 사용하고 새로 생성된 서버를 ' 서브로컬 ” 변수입니다.
- 그런 다음 ' 노력하다 ” 블록을 메서드 콜백 함수 내에서 호출하고 “ createWriteStream() ”를 사용하는 방법 fsObj ” 변수입니다.
- 콘텐츠를 삽입해야 하는 대상 파일을 이 메소드 괄호 안에 전달하고 결과를 ' 셀스트림 ” 변수
- '를 활용하세요. 쓰다() ” 이 변수를 사용하여 메서드를 실행하고 대상 파일에 기록될 더미 메시지를 괄호 안에 전달합니다.
- '를 호출하여 스트림을 닫습니다. 끝() ' 메서드를 호출하고 '를 호출하여 웹 페이지에 성공 메시지를 표시합니다. 응답.끝() ' 방법. 어디 ' 응답 ”는 “의 콜백 매개변수입니다. 서버 생성 ' 방법.
- '를 활용하세요. 잡다 ” 블록을 사용하여 발생한 오류를 처리합니다.
- 마지막으로 포트 번호 '를 통해 서버를 수신하거나 설정합니다. 8080 ” 콜백 함수를 사용하여 성공 메시지를 표시합니다.
생성된 출력은 제공된 텍스트가 '를 사용하여 작성되었음을 보여줍니다. 쓰다() ' 방법:
예 3: 여러 파일에 동일한 데이터 쓰기
이 예에서는 '를 사용하여 스트림에서 단일 파일을 읽습니다. createReadStream() ' 방법. 그런 다음 읽은 내용은 '를 사용하여 여러 파일에 기록됩니다. createWriteStream() ' 그리고 ' .파이프() ” 메소드:
fsObj였습니다 = 필요하다 ( 'fs' ) ;const 데이터 스트림 = fsObj. createReadStream ( 'mynewfile1.txt' ) ;
const writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
const writeStream2 = fsObj. createWriteStream ( '유즈케이스.txt' ) ;
데이터 스트림. 파이프 ( writeStream1 ) ;
데이터 스트림. 파이프 ( writeStream2 ) ;
위의 코드 조각에서:
- “ createReadStream() ” 메소드가 호출되고 내용을 읽어야 하는 파일이 매개변수로 전달됩니다. 이 방법의 결과는 ' 데이터 스트림 ” 변수입니다.
- 다음으로는 “ createWriteStream() ” 메소드가 호출되고 대상 파일이 매개변수로 전달됩니다.
- 같은 방식으로 두 번째 파일의 경로도 쓰기 가능한 스트림으로 전달되고 결과는 ' writeStream1 ' 그리고 ' writeStream2 ' 변수.
- 그 후에는 ' .파이프() ” 메서드는 “에 저장된 콘텐츠를 데이터 스트림 ” 변수는 “에 할당됩니다. writeStream1 ' 그리고 ' writeStream2 ' 변수.
생성된 출력은 제공된 파일 콘텐츠가 스트림을 통해 제공된 파일에 삽입되었음을 보여줍니다.
이것이 Node.js의 쓰기 가능한 스트림 작업에 관한 전부입니다.
결론
쓰기 가능한 스트림으로 작업하려면 ' createWriteStream() '는 '를 통해 호출됩니다. FS ” 모듈 개체입니다. 콘텐츠를 작성해야 하는 대상 파일 경로가 매개변수로 전달됩니다. 다른 스트림의 콘텐츠를 쓰려면 ' .파이프() '라는 방식을 활용한다. “ 쓰다() ” 방법은 대상 파일에 직접 콘텐츠를 쓰는 경우에도 유용합니다. 이 게시물에서는 쓰기 가능한 스트림으로 작업하는 절차를 설명했습니다.