The default implementation on Stream creates a new single-byte array and then calls Read. While this is formally correct, it is inefficient. Any stream with an internal buffer should override this method and provide a much more efficient version that reads the buffer directly, avoiding the extra array allocation on every call.
Taken from the FileStream.ReadByte documentation:
http://msdn.microsoft.com/en-us/library/system.io.filestream.readbyte.aspx
What is the meaing of this and how do I overcome this inefficiency?