集册 Java实例教程 将字节从InputStream复制到OutputStream。

将字节从InputStream复制到OutputStream。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

594
将字节从InputStream复制到OutputStream。

/**

 * Licensed to Jasig under one or more contributor license

 * agreements. See the NOTICE file distributed with this work

 * for additional information regarding copyright ownership.

 * Jasig licenses this file to you 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.

 */

//package com.nowjava;
//时 代 J     a    v  a - nowjava.com 提 供

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;


public class Main {

    /**

     * The default buffer size to use.

     */

    private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;


    /**

     * Copy bytes from an <code>InputStream</code> to an

     * <code>OutputStream</code>.

     * <p>

     * This method buffers the input internally, so there is no need to use a

     * <code>BufferedInputStream</code>.

     * <p>

     * Large streams (over 2GB) will return a bytes copied value of

     * <code>-1</code> after the copy has completed since the correct

     * number of bytes cannot be returned as an int. For large streams

     * use the <code>copyLarge(InputStream, OutputStream)</code> method.

     * 

     * @param input  the <code>InputStream</code> to read from

     * @param output  the <code>OutputStream</code> to write to

     * @return the number of bytes copied

     * @throws NullPointerException if the input or output is null

     * @throws IOException if an I/O error occurs

     * @throws ArithmeticException if the byte count is too large

     * @since Commons IO 1.1

     */

    static int copy(InputStream input, OutputStream output)

            throws IOException {

        long count = copyLarge(input, output);

        if (count > Integer.MAX_VALUE) {

            return -1;

        }

        return (int) count;

    }
/*N o w J a v a . c o m - 时  代  Java 提供*/

    
展开阅读全文