title: Java OutOfMemoryError in reading a large text file
body: <p>I'm new to Java and working on reading very large files, need some help to understand the problem and solve it. We have got some legacy code which have to be optimized to make it run properly.The file size can vary from 10mb to 10gb only. only trouble start when file starting beyond 800mb size.</p>
  
  <pre><code>InputStream inFileReader = channelSFtp.get(path); // file reading from ssh.
  byte[] localbuffer = new byte[2048];
  ByteArrayOutputStream bArrStream = new ByteArrayOutputStream();
  
  int i = 0;
  while (-1 != (i = inFileReader.read(buffer))) {
  bArrStream.write(localbuffer, 0, i);
  }
  
  byte[] data = bArrStream.toByteArray();
  inFileReader.close();
  bos.close();
  </code></pre>
  
  <p>We are getting the error </p>
  
  <pre><code>java.lang.OutOfMemoryError: Java heap space
      at java.util.Arrays.copyOf(Arrays.java:2271)
      at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
      at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
      at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)
  </code></pre>
  
  <p>Any help would be appreciated?</p>