title: When should I use System.IO.Stream (or derived class) vs a simple Byte[]?
body: <p>I'm porting over some C++ and Java code to C# and see all the data IO as Streams, when all the streams are less than 1K in size.</p>
  
  <p>Given that the buffer size of the stream equals the whole stream in almost all circumstances, is there any reason I shouldn't simply use a Byte[]?  </p>
  
  <p>The 1K data units are arriving <em>from</em> a stream source (network or disk) however, once read into memory, the stream access is a little random.  I think direct byte[x] access might be more efficient (or logical).</p>
  
  <p>So my question, is it generally acceptable from a security and architecture perspective to use Byte[] array directly instead of wrapping it in a stream?  Assume that no further "stream" access is needed for other operations (e.g. an encoded media stream).</p>