Node.js streams come in four types: Readable streams produce data, Writable streams consume data, Transform streams modify data while passing it through, and Duplex streams can do both reading and writing. In the example, a Readable stream pushes the string 'Hello' and then pushes null to signal no more data. A Writable stream receives this data and logs it. The pipe() method connects the readable to the writable, so data flows automatically. The writable calls a callback after writing to signal completion. Pushing null is important to tell the writable stream that the data has ended, so it can close properly.