Read byte array from InputStream in Java

Description

The following code shows how to read byte array from InputStream.

Example


/*  www .  j a  v a  2 s  .c  o m*/
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {
  /**
   * 
   * @param in The InputStream to read the bytes from.
   * @return A byte array containing the bytes that were read.
   * @throws IOException If I/O error occurred.
   */
  public static final byte[] readFully(InputStream in)
    throws IOException
  {
    ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
    transfer(in, out);
    out.close();

    return out.toByteArray();
  }

  /**
   * Transfers all bytes that can be read from <tt>in</tt> to <tt>out</tt>.
   *
   * @param in The InputStream to read data from.
   * @param out The OutputStream to write data to.
   * @return The total number of bytes transfered.
   */
  public static final long transfer(InputStream in, OutputStream out)
    throws IOException
  {
    long totalBytes = 0;
    int bytesInBuf = 0;
    byte[] buf = new byte[4096];

    while ((bytesInBuf = in.read(buf)) != -1) {
      out.write(buf, 0, bytesInBuf);
      totalBytes += bytesInBuf;
    }

    return totalBytes;
  }

}




















Home »
  Java Tutorial »
    I/O »




Binary File
Byte Array
CharSet
Checksum
Console
Create Copy Move Delete
Directory
Drive
Encode Decode
File Attribute
File Lock
File System
GZIP
Jar File
NIO Buffer
Path
Scanner
StreamTokenizer
Temporary File
Text File
Zip