Java InputStream to OutputStream copyStreamSafely(InputStream in, ByteArrayOutputStream os)

Here you can find the source of copyStreamSafely(InputStream in, ByteArrayOutputStream os)

Description

Copies the content from in into os.

License

Apache License

Parameter

Parameter Description
in an input stream (not null)
os an output stream (not null)

Exception

Parameter Description
IOException if an error occurred

Declaration

public static void copyStreamSafely(InputStream in, ByteArrayOutputStream os) throws IOException 

Method Source Code

//package com.java2s;
/**//w w w  .  j a va  2  s.c o  m
 * Copyright 2013-2017 Linagora, Universit? Joseph Fourier, Floralis
 *
 * The present code is developed in the scope of the joint LINAGORA -
 * Universit? Joseph Fourier - Floralis research program and is designated
 * as a "Result" pursuant to the terms and conditions of the LINAGORA
 * - Universit? Joseph Fourier - Floralis research program. Each copyright
 * holder of Results enumerated here above fully & independently holds complete
 * ownership of the complete Intellectual Property rights applicable to the whole
 * of said Results, and may freely exploit it in any manner which does not infringe
 * the moral rights of the other copyright holders.
 *
 * 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.ByteArrayOutputStream;

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

public class Main {
    /**
     * Copies the content from in into os.
     * <p>
     * This method closes the input stream.
     * <i>os</i> does not need to be closed.
     * </p>
     *
     * @param in an input stream (not null)
     * @param os an output stream (not null)
     * @throws IOException if an error occurred
     */
    public static void copyStreamSafely(InputStream in, ByteArrayOutputStream os) throws IOException {

        try {
            copyStreamUnsafelyUseWithCaution(in, os);

        } finally {
            in.close();
        }
    }

    /**
     * Copies the content from in into os.
     * <p>
     * Neither <i>in</i> nor <i>os</i> are closed by this method.<br>
     * They must be explicitly closed after this method is called.
     * </p>
     * <p>
     * Be careful, this method should be avoided when possible.
     * It was responsible for memory leaks. See #489.
     * </p>
     *
     * @param in an input stream (not null)
     * @param os an output stream (not null)
     * @throws IOException if an error occurred
     */
    public static void copyStreamUnsafelyUseWithCaution(InputStream in, OutputStream os) throws IOException {

        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            os.write(buf, 0, len);
        }
    }
}

Related

  1. copyStreams(InputStream input, OutputStream output)
  2. copyStreams(InputStream inputStream, OutputStream outputStream)
  3. copyStreams(InputStream is, OutputStream os)
  4. copyStreams(InputStream source, OutputStream destination)
  5. copyStreams(InputStream source, OutputStream target)
  6. copyStreamToFile(final InputStream stream, final File output)
  7. copyStreamToFile(InputStream input, String outputPath)
  8. CopyStreamToFile(InputStream inputStream, File outputFile)
  9. copyStreamToFile(InputStream inputStream, File outputFile)