Write the entire contents of the supplied string to the given stream. in Java

Description

The following code shows how to write the entire contents of the supplied string to the given stream..

Example


// ww w.  j a v  a 2 s .  co  m
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
/**
 * @author Randall Hauch
 */
public class Main {
  /**
   * Write the entire contents of the supplied string to the given stream. This method always flushes and closes the stream when
   * finished.
   * 
   * @param input the content to write to the stream; may be null
   * @param stream the stream to which the content is to be written
   * @throws IOException
   * @throws IllegalArgumentException if the stream is null
   */
  public static void write( InputStream input,
                            OutputStream stream ) throws IOException {
      boolean error = false;
      try {
          if (input != null) {
              byte[] buffer = new byte[1024];
              try {
                  int numRead = 0;
                  while ((numRead = input.read(buffer)) > -1) {
                      stream.write(buffer, 0, numRead);
                  }
              } finally {
                  input.close();
              }
          }
      } catch (IOException e) {
          error = true; // this error should be thrown, even if there is an error flushing/closing stream
          throw e;
      } catch (RuntimeException e) {
          error = true; // this error should be thrown, even if there is an error flushing/closing stream
          throw e;
      } finally {
          try {
              stream.flush();
          } catch (IOException e) {
              if (!error) throw e;
          } finally {
              try {
                  stream.close();
              } catch (IOException e) {
                  if (!error) throw e;
              }
          }
      }
  }
}
  

/*
 * JBoss DNA (http://www.jboss.org/dna)
 * See the COPYRIGHT.txt file distributed with this work for information
 * regarding copyright ownership.  Some portions may be licensed
 * to Red Hat, Inc. under one or more contributor license agreements.
 * See the AUTHORS.txt file in the distribution for a full listing of 
 * individual contributors. 
 *
 * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
 * is licensed to you under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * JBoss DNA is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */




















Home »
  Java Tutorial »
    Java Data Type »




Java Boolean
Java Byte
Java Character
Java Currency
Java Double
Java Enum
Java Float
Java Integer
Java Long
Java Short
Java Auto Grow Array
Java Array Compare
Java Array Convert
Java Array Copy Clone
Java Array Fill
Java Array Search and Sort
Java String Convert
Java String File
Java String Format
Java String Operation
Java BigDecimal
Java BigInteger