Java InputStream to OutputStream copyStream(InputStream in, File outputFile)

Here you can find the source of copyStream(InputStream in, File outputFile)

Description

Copies the content from in into outputFile.

License

Apache License

Parameter

Parameter Description
in an input stream (not null)
outputFile will be created if it does not exist

Exception

Parameter Description
IOException if the file could not be created

Declaration

public static void copyStream(InputStream in, File outputFile) throws IOException 

Method Source Code

//package com.java2s;
/**//from w w  w. j  ava  2 s .c  om
 * 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.File;

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

public class Main {
    /**
     * Copies the content from in into outputFile.
     * <p>
     * <i>in</i> is not closed by this method.<br>
     * It must be explicitly closed after this method is called.
     * </p>
     *
     * @param in an input stream (not null)
     * @param outputFile will be created if it does not exist
     * @throws IOException if the file could not be created
     */
    public static void copyStream(InputStream in, File outputFile) throws IOException {
        OutputStream os = new FileOutputStream(outputFile);
        try {
            copyStreamUnsafelyUseWithCaution(in, os);
        } finally {
            os.close();
        }
    }

    /**
     * Copies the content from inputFile into outputFile.
     *
     * @param inputFile an input file (must be a file and exist)
     * @param outputFile will be created if it does not exist
     * @throws IOException if something went wrong
     */
    public static void copyStream(File inputFile, File outputFile) throws IOException {
        InputStream is = new FileInputStream(inputFile);
        try {
            copyStream(is, outputFile);
        } finally {
            is.close();
        }
    }

    /**
     * Copies the content from inputFile into an output stream.
     *
     * @param inputFile an input file (must be a file and exist)
     * @param os the output stream
     * @throws IOException if something went wrong
     */
    public static void copyStream(File inputFile, OutputStream os) throws IOException {
        InputStream is = new FileInputStream(inputFile);
        try {
            copyStreamUnsafelyUseWithCaution(is, os);
        } finally {
            is.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. copyStream(final InputStream src, OutputStream dest)
  2. copyStream(final OutputStream to, final InputStream from)
  3. copyStream(InputStream fis, OutputStream fos)
  4. copyStream(InputStream from, OutputStream to)
  5. copyStream(InputStream in, boolean closeIn, OutputStream out, boolean closeOut)
  6. copyStream(InputStream in, FileOutputStream out, IProgressMonitor monitor, int length)
  7. copyStream(InputStream in, OutputStream os)
  8. copyStream(InputStream in, OutputStream os)
  9. copyStream(InputStream in, OutputStream out)