title: OutOfMemoryException when I read 500MB FileStream
body: <p>I'm using Filestream for read big file (> 500 MB) and I get the OutOfMemoryException.</p>
  
  <p>Any solutions about it.</p>
  
  <p>My Code is:</p>
  
  <pre><code> using (var fs3 = new FileStream(filePath2, FileMode.Open, FileAccess.Read))
                  {
                      byte[] b2 = ReadFully(fs3, 1024);
                  }
  
  
   public static byte[] ReadFully(Stream stream, int initialLength)
      {
          // If we've been passed an unhelpful initial length, just
          // use 32K.
          if (initialLength &lt; 1)
          {
              initialLength = 32768;
          }
  
          byte[] buffer = new byte[initialLength];
          int read = 0;
  
          int chunk;
          while ((chunk = stream.Read(buffer, read, buffer.Length - read)) &gt; 0)
          {
              read += chunk;
  
              // If we've reached the end of our buffer, check to see if there's
              // any more information
              if (read == buffer.Length)
              {
                  int nextByte = stream.ReadByte();
  
                  // End of stream? If so, we're done
                  if (nextByte == -1)
                  {
                      return buffer;
                  }
  
                  // Nope. Resize the buffer, put in the byte we've just
                  // read, and continue
                  byte[] newBuffer = new byte[buffer.Length * 2];
                  Array.Copy(buffer, newBuffer, buffer.Length);
                  newBuffer[read] = (byte)nextByte;
                  buffer = newBuffer;
                  read++;
              }
          }
          // Buffer is now too big. Shrink it.
          byte[] ret = new byte[read];
          Array.Copy(buffer, ret, read);
          return ret;
      }
  </code></pre>