Java OutputStream Write copyBytes(InputStream input, int size, OutputStream output)

Here you can find the source of copyBytes(InputStream input, int size, OutputStream output)

Description

Copies a sequence of bytes from one stream to another.

License

Apache License

Parameter

Parameter Description
input - The stream to read from.
size - The number of bytes to copy.
output - The stream to write to.

Exception

Parameter Description
IOException on EOF or any read or write error.

Declaration

public static void copyBytes(InputStream input, int size, OutputStream output) throws IOException 

Method Source Code


//package com.java2s;
/*/*from w w  w .  ja  v a2  s .c o  m*/
 * Copyright 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {
    /**
     * Copies a sequence of bytes from one stream to another.
     * @param input - The stream to read from.
     * @param size - The number of bytes to copy.
     * @param output - The stream to write to.
     * @throws IOException on EOF or any read or write error.
     */
    public static void copyBytes(InputStream input, int size, OutputStream output) throws IOException {
        if (size == 0) {
            return;
        }
        byte[] buffer = new byte[size];
        readBytes(input, size, buffer);
        output.write(buffer);
    }

    /**
     * Reads a sequency of bytes into a byte array.
     * @param input - The stream to read from.
     * @param size - The number of bytes to read.
     * @param buffer - The array to store the bytes into.
     * @throws IOException on EOF or any read error.
     */
    public static void readBytes(InputStream input, int size, byte[] buffer) throws IOException {
        // Read "size" bytes into an array.
        int totalRead = input.read(buffer, 0, size);
        while (totalRead < size) {
            int read = input.read(buffer, totalRead, size - totalRead);
            if (read < 0) {
                throw new IOException("Unexpected EOF while reading bytes.");
            }
            totalRead += read;
        }
    }
}

Related

  1. copyBytes(InputStream in, OutputStream out, int buffSize, boolean close)
  2. copyBytes(InputStream inputStream, OutputStream outputStream, int size)
  3. copyBytes(InputStream is, DataOutputStream[] os, long numBytes)
  4. copyBytes(InputStream is, OutputStream bytes)
  5. copyBytes(InputStream iStream, OutputStream oStream)