What is the difference between streamController.add() and streamController.sink.add()?

There are two ways that i know to add data to streamcontroller, one directly and other by use of a sink. I tried to read docs of Sink but i am not able to understand its concept like piping of data...