Here you can find the source of copyStreamSafely(InputStream in, ByteArrayOutputStream os)
Parameter | Description |
---|---|
in | an input stream (not null) |
os | an output stream (not null) |
Parameter | Description |
---|---|
IOException | if an error occurred |
public static void copyStreamSafely(InputStream in, ByteArrayOutputStream os) throws IOException
//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); } } }