Difficulty: 5/10streams, pipe, event handlingpipe(): Used to connect streams and automatically handle data flow from one stream to another.Copyon('data'): An event listener that allows you to manually handle incoming data as it's emitted by a readable stream.CopyScenario Questions0-2 years experience1You need to copy the contents of one file to another using streams. Would you use pipe() or attach a 'data' listener, and why?2If you add a 'data' listener to a readable stream but never call stream.resume(), what will the program do?3What changes, if any, occur when you call pipe() on a stream that already has a 'data' listener attached?Follow-up QuestionsHow does backpressure differ between pipe() and manual data listeners?What happens if an error is emitted on the source stream when using pipe()?Can you describe a scenario where you’d prefer a 'data' listener over pipe()?Suggest Improvement