Yes, you need to close it. The regular way to use it is to call
IDisposeable.Dispose()
; this interface is implemented by all stream and reader/writer types.
Moreover, you should never miss this call.
You have to make sure to call
IDisposeable.Dispose()
for all objects of types implementing this interface, no matter what,
before it becomes unreachable. If you fail to to do, the unreachable object will become garbage-collected, but side effect of disposal will be missed; it can lead to very unpleasant problems, such as: unmanaged memory leak (or leak of other resources), unclosed file handles (the files will remain inaccessible during lifetime of your applications), and other bad things.
Please see:
http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29[
^],
https://msdn.microsoft.com/en-us/library/system.idisposable%28v=vs.110%29.aspx[
^].
For all types you have to work with, check up if they implement this interface or not.
—SA