Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

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;
    }

}