集册 Java实例教程 无条件关闭InputStream。

无条件关闭InputStream。

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

515
无条件关闭InputStream。
/*来自 
 时代Java公众号*/

/*

 * Licensed to the Apache Software Foundation (ASF) under one or more

 * contributor license agreements.  See the NOTICE file distributed with

 * this work for additional information regarding copyright ownership.

 * The ASF 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;

import java.io.Closeable;


import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;


public class Main {

    /**

     * Unconditionally close an <code>InputStream</code>.

     * <p>

     * Equivalent to {@link InputStream#close()}, except any exceptions will be ignored.

     * This is typically used in finally blocks.

     * <p>

     * Example code:

     * <pre>

     *   byte[] data = new byte[1024];

     *   InputStream in = null;

     *   try {

     *       in = new FileInputStream("foo.txt");

     *       in.read(data);

     *       in.close(); //close errors are handled

     *   } catch (Exception e) {

     *       // error handling

     *   } finally {

     *       IOUtils.closeQuietly(in);

     *   }

     * </pre>

     *

     * @param input  the InputStream to close, may be null or already closed

     */

    public static void closeQuietly(InputStream input) {

        closeQuietly((Closeable) input);

    }


    /**

     * Unconditionally close an <code>OutputStream</code>.

     * <p>

     * Equivalent to {@link OutputStream#close()}, except any exceptions will be ignored.

     * This is typically used in finally blocks.

     * <p>

     * Example code:

     * <pre>

     * byte[] data = "Hello, World".getBytes();

     *

     * OutputStream out = null;

     * try {

     *     out = new FileOutputStream("foo.txt");

     *     out.write(data);

     *     out.close(); //close errors are handled

     * } catch (IOException e) {

     *     // error handling

     * } finally {

     *     IOUtils.closeQuietly(out);

     * }

     * </pre>

     *

     * @param output  the OutputStream to close, may be null or already closed

     */

    public static void closeQuietly(OutputStream output) {

        closeQuietly((Closeable) output);

    }//nowjava.com - 时代Java 提供


    
展开阅读全文