196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/* 296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * this work for additional information regarding copyright ownership. 596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * (the "License"); you may not use this file except in compliance with 796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the License. You may obtain a copy of the License at 844de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 1196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * See the License for the specific language governing permissions and 1596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * limitations under the License. 1696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 1796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpackage org.apache.commons.io; 1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.BufferedInputStream; 2096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.BufferedReader; 2196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.ByteArrayInputStream; 2296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.CharArrayWriter; 2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.File; 2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.IOException; 2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.InputStream; 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.InputStreamReader; 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.OutputStream; 2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.OutputStreamWriter; 2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.PrintWriter; 3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.Reader; 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.StringWriter; 3296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.io.Writer; 3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.ArrayList; 3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.Collection; 3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.Iterator; 3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.List; 3796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 3896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport org.apache.commons.io.output.ByteArrayOutputStream; 3996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/** 4196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * General IO stream manipulation utilities. 4296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 4396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This class provides static utility methods for input/output operations. 4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <ul> 4596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <li>closeQuietly - these methods close a stream ignoring nulls and exceptions 4696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <li>toXxx/read - these methods read data from a stream 4796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <li>write - these methods write data to a stream 4896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <li>copy - these methods copy all the data from one stream to another 4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <li>contentEquals - these methods compare the content of two streams 5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </ul> 5196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The byte-to-char methods and char-to-byte methods involve a conversion step. 5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Two methods are provided in each case, one that uses the platform default 5496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * encoding and the other which allows you to specify an encoding. You are 5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * encouraged to always specify an encoding because relying on the platform 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * default can lead to unexpected results, for example when moving from 5796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * development to production. 5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * All the methods in this class that read a stream are buffered internally. 6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This means that there is no cause to use a <code>BufferedInputStream</code> 6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * or <code>BufferedReader</code>. The default buffer size of 4K has been shown 6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * to be efficient in tests. 6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Wherever possible, the methods in this class do <em>not</em> flush or close 6596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the stream. This is to avoid making non-portable assumptions about the 6696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * streams' origin and further use. Thus the caller is still responsible for 6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * closing streams after use. 6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 6996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Origin of code: Excalibur. 7096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 7196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Peter Donald 7296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Jeff Turner 7396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Matthew Hawthorne 7496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Stephen Colebourne 7596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Gareth Davis 7696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Ian Springer 7796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Niall Pemberton 7896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @author Sandy McArthur 7996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @version $Id: IOUtils.java 481854 2006-12-03 18:30:07Z scolebourne $ 8096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 8196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpublic class IOUtils { 8296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // NOTE: This class is focussed on InputStream, OutputStream, Reader and 8396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // Writer. Each method should take at least one of these as a parameter, 8496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // or return one of them. 8596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 8696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 8796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The Unix directory separator character. 8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final char DIR_SEPARATOR_UNIX = '/'; 9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 9196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The Windows directory separator character. 9296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 9396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final char DIR_SEPARATOR_WINDOWS = '\\'; 9496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 9596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The system directory separator character. 9696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 9796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final char DIR_SEPARATOR = File.separatorChar; 9896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 9996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The Unix line separator string. 10096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 10196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final String LINE_SEPARATOR_UNIX = "\n"; 10296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 10396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The Windows line separator string. 10496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 10596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final String LINE_SEPARATOR_WINDOWS = "\r\n"; 10696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 10796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The system line separator string. 10896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 10996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final String LINE_SEPARATOR; 11096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project static { 11196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // avoid security issues 11296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project StringWriter buf = new StringWriter(4); 11396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project PrintWriter out = new PrintWriter(buf); 11496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project out.println(); 11596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project LINE_SEPARATOR = buf.toString(); 11696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 11896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 11996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The default buffer size to use. 12096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 12196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private static final int DEFAULT_BUFFER_SIZE = 1024 * 4; 12296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 12396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 12496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Instances should NOT be constructed in standard programming. 12596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 12696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public IOUtils() { 12796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project super(); 12896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 12996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 13096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 13196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 13296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unconditionally close an <code>Reader</code>. 13396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 13496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Equivalent to {@link Reader#close()}, except any exceptions will be ignored. 13596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This is typically used in finally blocks. 13696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 13796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the Reader to close, may be null or already closed 13896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 13996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void closeQuietly(Reader input) { 14096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project try { 14196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (input != null) { 14296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input.close(); 14396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 14496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } catch (IOException ioe) { 14596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // ignore 14696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 14796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 14896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 14996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 15096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unconditionally close a <code>Writer</code>. 15196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 15296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Equivalent to {@link Writer#close()}, except any exceptions will be ignored. 15396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This is typically used in finally blocks. 15496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 15596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the Writer to close, may be null or already closed 15696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 15796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void closeQuietly(Writer output) { 15896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project try { 15996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (output != null) { 16096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.close(); 16196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 16296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } catch (IOException ioe) { 16396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // ignore 16496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 16596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 16696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 16796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 16896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unconditionally close an <code>InputStream</code>. 16996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 17096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Equivalent to {@link InputStream#close()}, except any exceptions will be ignored. 17196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This is typically used in finally blocks. 17296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 17396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the InputStream to close, may be null or already closed 17496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 17596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void closeQuietly(InputStream input) { 17696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project try { 17796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (input != null) { 17896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input.close(); 17996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } catch (IOException ioe) { 18196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // ignore 18296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 18596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 18696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unconditionally close an <code>OutputStream</code>. 18796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 18896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Equivalent to {@link OutputStream#close()}, except any exceptions will be ignored. 18996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This is typically used in finally blocks. 19096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 19196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the OutputStream to close, may be null or already closed 19296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 19396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void closeQuietly(OutputStream output) { 19496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project try { 19596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (output != null) { 19696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.close(); 19796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 19896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } catch (IOException ioe) { 19996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // ignore 20096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 20196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 20296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 20396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // read toByteArray 20496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 20596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 20696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a <code>byte[]</code>. 20796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 20896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 20996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 21044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 21196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 21296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested byte array 21396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 21496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 21596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 21696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static byte[] toByteArray(InputStream input) throws IOException { 21796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ByteArrayOutputStream output = new ByteArrayOutputStream(); 21896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, output); 21996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return output.toByteArray(); 22096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 22196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 22296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 22396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>Reader</code> as a <code>byte[]</code> 22496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 22596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 22696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 22796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 22844de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 22996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 23096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested byte array 23196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 23296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 23396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 23496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static byte[] toByteArray(Reader input) throws IOException { 23596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ByteArrayOutputStream output = new ByteArrayOutputStream(); 23696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, output); 23796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return output.toByteArray(); 23896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 23996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 24096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 24196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>Reader</code> as a <code>byte[]</code> 24296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 24396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 24496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 24596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 24696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 24796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 24896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 24944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 25096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 25196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 25296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested byte array 25396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 25496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 25596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 25696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 25796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static byte[] toByteArray(Reader input, String encoding) 25896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 25996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ByteArrayOutputStream output = new ByteArrayOutputStream(); 26096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, output, encoding); 26196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return output.toByteArray(); 26296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 26396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 26496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 26596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>String</code> as a <code>byte[]</code> 26696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 26796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 26896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This is the same as {@link String#getBytes()}. 26944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 27096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>String</code> to convert 27196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested byte array 27296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 27396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs (never occurs) 27496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @deprecated Use {@link String#getBytes()} 27596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 27696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static byte[] toByteArray(String input) throws IOException { 27796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return input.getBytes(); 27896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 27996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 28096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // read char[] 28196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 28296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 28396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a character array 28496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 28596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 28696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 28796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 28844de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 28996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param is the <code>InputStream</code> to read from 29096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested character array 29196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 29296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 29396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 29496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 29596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static char[] toCharArray(InputStream is) throws IOException { 29696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project CharArrayWriter output = new CharArrayWriter(); 29796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(is, output); 29896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return output.toCharArray(); 29996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 30096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 30196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 30296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a character array 30396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 30496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 30596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 30696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 30796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 30896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 30996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 31044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 31196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param is the <code>InputStream</code> to read from 31296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 31396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested character array 31496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 31596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 31696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 31796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 31896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static char[] toCharArray(InputStream is, String encoding) 31996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 32096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project CharArrayWriter output = new CharArrayWriter(); 32196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(is, output, encoding); 32296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return output.toCharArray(); 32396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 32496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 32596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 32696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>Reader</code> as a character array. 32796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 32896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 32996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 33044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 33196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 33296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested character array 33396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 33496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 33596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 33696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 33796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static char[] toCharArray(Reader input) throws IOException { 33896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project CharArrayWriter sw = new CharArrayWriter(); 33996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, sw); 34096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return sw.toCharArray(); 34196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 34296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 34396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // read toString 34496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 34596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 34696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a String 34796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 34896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 34996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 35096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 35144de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 35296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 35396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested String 35496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 35596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 35696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 35796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static String toString(InputStream input) throws IOException { 35896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project StringWriter sw = new StringWriter(); 35996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, sw); 36096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return sw.toString(); 36196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 36296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 36396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 36496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a String 36596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 36696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 36796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 36896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 36996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 37096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 37196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 37244de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 37396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 37496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 37596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested String 37696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 37796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 37896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 37996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static String toString(InputStream input, String encoding) 38096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 38196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project StringWriter sw = new StringWriter(); 38296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, sw, encoding); 38396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return sw.toString(); 38496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 38596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 38696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 38796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>Reader</code> as a String. 38896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 38996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 39096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 39144de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 39296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 39396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested String 39496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 39596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 39696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 39796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static String toString(Reader input) throws IOException { 39896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project StringWriter sw = new StringWriter(); 39996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, sw); 40096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return sw.toString(); 40196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 40296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 40396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 40496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>byte[]</code> as a String 40596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 40644de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 40796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the byte array to read from 40896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested String 40996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 41096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs (never occurs) 41196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @deprecated Use {@link String#String(byte[])} 41296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 41396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static String toString(byte[] input) throws IOException { 41496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new String(input); 41596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 41696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 41796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 41896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>byte[]</code> as a String 41996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 42096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 42196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 42296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 42344de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 42496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the byte array to read from 42596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 42696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the requested String 42796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 42896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs (never occurs) 42996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @deprecated Use {@link String#String(byte[],String)} 43096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 43196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static String toString(byte[] input, String encoding) 43296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 43396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 43496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new String(input); 43596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 43696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new String(input, encoding); 43796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 43896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 43996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 44096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // readLines 44196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 44296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 44396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a list of Strings, 44496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * one entry per line, using the default character encoding of the platform. 44596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 44696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 44796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 44896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 44996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from, not null 45096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the list of Strings, never null 45196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 45296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 45396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 45496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 45544de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static List<String> readLines(InputStream input) throws IOException { 45696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project InputStreamReader reader = new InputStreamReader(input); 45796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return readLines(reader); 45896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 45996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 46096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 46196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of an <code>InputStream</code> as a list of Strings, 46296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * one entry per line, using the specified character encoding. 46396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 46496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 46596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 46696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 46796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 46896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 46996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 47096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from, not null 47196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 47296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the list of Strings, never null 47396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 47496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 47596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 47696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 47744de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static List<String> readLines(InputStream input, String encoding) throws IOException { 47896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 47996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return readLines(input); 48096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 48196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project InputStreamReader reader = new InputStreamReader(input, encoding); 48296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return readLines(reader); 48396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 48496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 48596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 48696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 48796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Get the contents of a <code>Reader</code> as a list of Strings, 48896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * one entry per line. 48996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 49096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 49196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 49296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 49396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from, not null 49496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the list of Strings, never null 49596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 49696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 49796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 49896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 49944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static List<String> readLines(Reader input) throws IOException { 50096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project BufferedReader reader = new BufferedReader(input); 50144de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy List<String> list = new ArrayList<String>(); 50296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String line = reader.readLine(); 50396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project while (line != null) { 50496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project list.add(line); 50596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project line = reader.readLine(); 50696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 50796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return list; 50896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 50996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 51096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // lineIterator 51196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 51296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 51396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Return an Iterator for the lines in a <code>Reader</code>. 51496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 51596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>LineIterator</code> holds a reference to the open 51696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>Reader</code> specified here. When you have finished with the 51796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * iterator you should close the reader to free internal resources. 51896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This can be done by closing the reader directly, or by calling 51996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * {@link LineIterator#close()} or {@link LineIterator#closeQuietly(LineIterator)}. 52096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 52196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The recommended usage pattern is: 52296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 52396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * try { 52496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * LineIterator it = IOUtils.lineIterator(reader); 52596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * while (it.hasNext()) { 52696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * String line = it.nextLine(); 52796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * /// do something with line 52896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 52996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } finally { 53096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * IOUtils.closeQuietly(reader); 53196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 53296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 53396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 53496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param reader the <code>Reader</code> to read from, not null 53596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an Iterator of the lines in the reader, never null 53696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IllegalArgumentException if the reader is null 53796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 53896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 53996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static LineIterator lineIterator(Reader reader) { 54096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new LineIterator(reader); 54196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 54296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 54396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 54496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Return an Iterator for the lines in an <code>InputStream</code>, using 54596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the character encoding specified (or default encoding if null). 54696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 54796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>LineIterator</code> holds a reference to the open 54896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>InputStream</code> specified here. When you have finished with 54996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * the iterator you should close the stream to free internal resources. 55096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This can be done by closing the stream directly, or by calling 55196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * {@link LineIterator#close()} or {@link LineIterator#closeQuietly(LineIterator)}. 55296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 55396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * The recommended usage pattern is: 55496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 55596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * try { 55696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * LineIterator it = IOUtils.lineIterator(stream, "UTF-8"); 55796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * while (it.hasNext()) { 55896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * String line = it.nextLine(); 55996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * /// do something with line 56096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 56196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } finally { 56296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * IOUtils.closeQuietly(stream); 56396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * } 56496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 56596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 56696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from, not null 56796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 56896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an Iterator of the lines in the reader, never null 56996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IllegalArgumentException if the input is null 57096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs, such as if the encoding is invalid 57196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.2 57296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 57344de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static LineIterator lineIterator(InputStream input, String encoding) 57496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 57596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Reader reader = null; 57696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 57796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project reader = new InputStreamReader(input); 57896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 57996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project reader = new InputStreamReader(input, encoding); 58096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 58196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new LineIterator(reader); 58296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 58396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 58496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 58596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 58696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Convert the specified string to an input stream, encoded as bytes 58796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 58896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 58996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the string to convert 59096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an input stream 59196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 59296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 59396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static InputStream toInputStream(String input) { 59496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project byte[] bytes = input.getBytes(); 59596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new ByteArrayInputStream(bytes); 59696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 59796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 59896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 59996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Convert the specified string to an input stream, encoded as bytes 60096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 60196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 60296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 60396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 60496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 60596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the string to convert 60696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 60796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if the encoding is invalid 60896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return an input stream 60996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 61096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 61196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static InputStream toInputStream(String input, String encoding) throws IOException { 61296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project byte[] bytes = encoding != null ? input.getBytes(encoding) : input.getBytes(); 61396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return new ByteArrayInputStream(bytes); 61496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 61596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 61696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // write byte[] 61796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 61896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 61996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes bytes from a <code>byte[]</code> to an <code>OutputStream</code>. 62044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 62196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the byte array to write, do not modify during output, 62296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 62396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 62496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 62596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 62696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 62796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 62896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(byte[] data, OutputStream output) 62996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 63096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 63196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data); 63296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 63396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 63496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 63596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 63696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code> 63796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 63896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 63996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#String(byte[])}. 64044de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 64196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the byte array to write, do not modify during output, 64296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 64396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 64496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 64596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 64696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 64796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 64896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(byte[] data, Writer output) throws IOException { 64996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 65096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(new String(data)); 65196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 65296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 65396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 65496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 65596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes bytes from a <code>byte[]</code> to chars on a <code>Writer</code> 65696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the specified character encoding. 65796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 65896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 65996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 66096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 66196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#String(byte[], String)}. 66244de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 66396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the byte array to write, do not modify during output, 66496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 66596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 66696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 66796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 66896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 66996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 67096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 67196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(byte[] data, Writer output, String encoding) 67296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 67396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 67496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 67596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project write(data, output); 67696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 67796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(new String(data, encoding)); 67896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 67996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 68096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 68196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 68296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // write char[] 68396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 68496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 68596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>char[]</code> to a <code>Writer</code> 68696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * using the default character encoding of the platform. 68744de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 68896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the char array to write, do not modify during output, 68996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 69096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 69196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 69296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 69396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 69496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 69596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(char[] data, Writer output) throws IOException { 69696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 69796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data); 69896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 69996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 70096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 70196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 70296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>char[]</code> to bytes on an 70396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code>. 70496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 70596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#String(char[])} and 70696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * {@link String#getBytes()}. 70744de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 70896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the char array to write, do not modify during output, 70996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 71096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 71196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 71296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 71396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 71496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 71596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(char[] data, OutputStream output) 71696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 71796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 71896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(new String(data).getBytes()); 71996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 72096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 72196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 72296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 72396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>char[]</code> to bytes on an 72496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the specified character encoding. 72596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 72696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 72796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 72896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 72996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#String(char[])} and 73096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * {@link String#getBytes(String)}. 73144de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 73296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the char array to write, do not modify during output, 73396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * null ignored 73496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 73596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 73696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 73796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 73896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 73996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 74096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(char[] data, OutputStream output, String encoding) 74196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 74296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 74396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 74496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project write(data, output); 74596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 74696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(new String(data).getBytes(encoding)); 74796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 74896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 74996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 75096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 75196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // write String 75296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 75396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 75496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>String</code> to a <code>Writer</code>. 75544de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 75696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>String</code> to write, null ignored 75796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 75896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 75996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 76096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 76196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 76296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(String data, Writer output) throws IOException { 76396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 76496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data); 76596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 76696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 76796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 76896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 76996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>String</code> to bytes on an 77096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the default character encoding of the 77196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * platform. 77296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 77396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#getBytes()}. 77444de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 77596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>String</code> to write, null ignored 77696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 77796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 77896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 77996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 78096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 78196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(String data, OutputStream output) 78296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 78396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 78496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data.getBytes()); 78596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 78696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 78796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 78896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 78996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>String</code> to bytes on an 79096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the specified character encoding. 79196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 79296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 79396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 79496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 79596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#getBytes(String)}. 79644de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 79796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>String</code> to write, null ignored 79896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 79996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 80096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 80196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 80296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 80396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 80496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(String data, OutputStream output, String encoding) 80596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 80696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 80796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 80896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project write(data, output); 80996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 81096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data.getBytes(encoding)); 81196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 81296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 81396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 81496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 81596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // write StringBuffer 81696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 81796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 81896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>StringBuffer</code> to a <code>Writer</code>. 81944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 82096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>StringBuffer</code> to write, null ignored 82196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 82296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 82396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 82496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 82596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 82696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(StringBuffer data, Writer output) 82796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 82896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 82996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data.toString()); 83096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 83196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 83296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 83396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 83496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>StringBuffer</code> to bytes on an 83596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the default character encoding of the 83696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * platform. 83796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 83896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#getBytes()}. 83944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 84096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>StringBuffer</code> to write, null ignored 84196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 84296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 84396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 84496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 84596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 84696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(StringBuffer data, OutputStream output) 84796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 84896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 84996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data.toString().getBytes()); 85096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 85196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 85296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 85396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 85496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes chars from a <code>StringBuffer</code> to bytes on an 85596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the specified character encoding. 85696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 85796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 85896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 85996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 86096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link String#getBytes(String)}. 86144de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 86296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param data the <code>StringBuffer</code> to write, null ignored 86396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 86496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 86596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if output is null 86696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 86796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 86896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 86996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void write(StringBuffer data, OutputStream output, 87096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String encoding) throws IOException { 87196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (data != null) { 87296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 87396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project write(data, output); 87496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 87596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(data.toString().getBytes(encoding)); 87696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 87796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 87896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 87996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 88096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // writeLines 88196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 88296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 88396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes the <code>toString()</code> value of each item in a collection to 88496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * an <code>OutputStream</code> line by line, using the default character 88596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * encoding of the platform and the specified line ending. 88696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 88796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lines the lines to write, null entries produce blank lines 88896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lineEnding the line separator to use, null is system default 88996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to, not null, not closed 89096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the output is null 89196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 89296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 89396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 89444de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static void writeLines(Collection<Object> lines, String lineEnding, 89596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project OutputStream output) throws IOException { 89696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lines == null) { 89796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return; 89896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 89996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lineEnding == null) { 90096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project lineEnding = LINE_SEPARATOR; 90196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 90244de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy for (Iterator<Object> it = lines.iterator(); it.hasNext(); ) { 90396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Object line = it.next(); 90496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (line != null) { 90596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(line.toString().getBytes()); 90696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 90796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(lineEnding.getBytes()); 90896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 90996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 91096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 91196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 91296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes the <code>toString()</code> value of each item in a collection to 91396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * an <code>OutputStream</code> line by line, using the specified character 91496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * encoding and the specified line ending. 91596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 91696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 91796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 91896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 91996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lines the lines to write, null entries produce blank lines 92096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lineEnding the line separator to use, null is system default 92196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to, not null, not closed 92296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 92396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the output is null 92496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 92596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 92696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 92744de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static void writeLines(Collection<Object> lines, String lineEnding, 92896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project OutputStream output, String encoding) throws IOException { 92996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 93096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project writeLines(lines, lineEnding, output); 93196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 93296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lines == null) { 93396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return; 93496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 93596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lineEnding == null) { 93696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project lineEnding = LINE_SEPARATOR; 93796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 93844de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy for (Iterator<Object> it = lines.iterator(); it.hasNext(); ) { 93996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Object line = it.next(); 94096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (line != null) { 94196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(line.toString().getBytes(encoding)); 94296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 94396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(lineEnding.getBytes(encoding)); 94496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 94596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 94696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 94796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 94896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 94996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Writes the <code>toString()</code> value of each item in a collection to 95096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * a <code>Writer</code> line by line, using the specified line ending. 95196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 95296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lines the lines to write, null entries produce blank lines 95396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param lineEnding the line separator to use, null is system default 95496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param writer the <code>Writer</code> to write to, not null, not closed 95596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input is null 95696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 95796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 95896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 95944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy public static void writeLines(Collection<Object> lines, String lineEnding, 96096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Writer writer) throws IOException { 96196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lines == null) { 96296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return; 96396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 96496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (lineEnding == null) { 96596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project lineEnding = LINE_SEPARATOR; 96696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 96744de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy for (Iterator<Object> it = lines.iterator(); it.hasNext(); ) { 96896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Object line = it.next(); 96996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (line != null) { 97096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project writer.write(line.toString()); 97196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 97296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project writer.write(lineEnding); 97396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 97496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 97596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 97696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // copy from InputStream 97796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 97896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 97996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy bytes from an <code>InputStream</code> to an 98096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code>. 98196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 98296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 98396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 98496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 98596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Large streams (over 2GB) will return a bytes copied value of 98696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>-1</code> after the copy has completed since the correct 98796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * number of bytes cannot be returned as an int. For large streams 98896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * use the <code>copyLarge(InputStream, OutputStream)</code> method. 98944de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 99096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 99196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 99296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the number of bytes copied 99396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 99496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 99596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws ArithmeticException if the byte count is too large 99696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 99796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 99896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static int copy(InputStream input, OutputStream output) throws IOException { 99996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project long count = copyLarge(input, output); 100096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (count > Integer.MAX_VALUE) { 100196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return -1; 100296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 100396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return (int) count; 100496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 100596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 100696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 100796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy bytes from a large (over 2GB) <code>InputStream</code> to an 100896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code>. 100996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 101096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 101196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 101244de127691c5e0d1479f1976c1d69d03ee21d94eTodd Kennedy * 101396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 101496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 101596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the number of bytes copied 101696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 101796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 101896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 101996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 102096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static long copyLarge(InputStream input, OutputStream output) 102196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 102296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; 102396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project long count = 0; 102496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int n = 0; 102596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project while (-1 != (n = input.read(buffer))) { 102696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(buffer, 0, n); 102796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project count += n; 102896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 102996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return count; 103096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 103196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 103296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 103396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy bytes from an <code>InputStream</code> to chars on a 103496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>Writer</code> using the default character encoding of the platform. 103596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 103696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 103796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 103896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 103996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link InputStreamReader}. 104096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 104196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 104296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 104396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 104496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 104596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 104696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 104796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void copy(InputStream input, Writer output) 104896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 104996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project InputStreamReader in = new InputStreamReader(input); 105096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(in, output); 105196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 105296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 105396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 105496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy bytes from an <code>InputStream</code> to chars on a 105596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>Writer</code> using the specified character encoding. 105696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 105796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 105896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code>. 105996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 106096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 106196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 106296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 106396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link InputStreamReader}. 106496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 106596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>InputStream</code> to read from 106696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 106796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 106896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 106996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 107096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 107196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 107296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void copy(InputStream input, Writer output, String encoding) 107396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 107496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 107596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, output); 107696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 107796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project InputStreamReader in = new InputStreamReader(input, encoding); 107896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(in, output); 107996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 108096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 108196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 108296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // copy from Reader 108396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 108496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 108596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy chars from a <code>Reader</code> to a <code>Writer</code>. 108696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 108796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 108896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 108996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 109096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Large streams (over 2GB) will return a chars copied value of 109196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>-1</code> after the copy has completed since the correct 109296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * number of chars cannot be returned as an int. For large streams 109396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * use the <code>copyLarge(Reader, Writer)</code> method. 109496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 109596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 109696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 109796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the number of characters copied 109896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 109996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 110096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws ArithmeticException if the character count is too large 110196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 110296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 110396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static int copy(Reader input, Writer output) throws IOException { 110496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project long count = copyLarge(input, output); 110596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (count > Integer.MAX_VALUE) { 110696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return -1; 110796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 110896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return (int) count; 110996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 111096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 111196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 111296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy chars from a large (over 2GB) <code>Reader</code> to a <code>Writer</code>. 111396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 111496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 111596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 111696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 111796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 111896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>Writer</code> to write to 111996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return the number of characters copied 112096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 112196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 112296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.3 112396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 112496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static long copyLarge(Reader input, Writer output) throws IOException { 112596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project char[] buffer = new char[DEFAULT_BUFFER_SIZE]; 112696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project long count = 0; 112796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int n = 0; 112896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project while (-1 != (n = input.read(buffer))) { 112996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project output.write(buffer, 0, n); 113096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project count += n; 113196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 113296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return count; 113396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 113496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 113596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 113696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy chars from a <code>Reader</code> to bytes on an 113796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the default character encoding of the 113896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * platform, and calling flush. 113996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 114096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 114196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 114296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 114396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Due to the implementation of OutputStreamWriter, this method performs a 114496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * flush. 114596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 114696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link OutputStreamWriter}. 114796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 114896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 114996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 115096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 115196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 115296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 115396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 115496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void copy(Reader input, OutputStream output) 115596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 115696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project OutputStreamWriter out = new OutputStreamWriter(output); 115796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, out); 115896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // XXX Unless anyone is planning on rewriting OutputStreamWriter, we 115996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // have to flush here. 116096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project out.flush(); 116196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 116296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 116396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 116496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copy chars from a <code>Reader</code> to bytes on an 116596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>OutputStream</code> using the specified character encoding, and 116696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * calling flush. 116796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 116896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally, so there is no need to use a 116996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code>. 117096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 117196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Character encoding names can be found at 117296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <a href="http://www.iana.org/assignments/character-sets">IANA</a>. 117396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 117496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Due to the implementation of OutputStreamWriter, this method performs a 117596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * flush. 117696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 117796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method uses {@link OutputStreamWriter}. 117896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 117996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input the <code>Reader</code> to read from 118096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param output the <code>OutputStream</code> to write to 118196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param encoding the encoding to use, null means platform default 118296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if the input or output is null 118396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 118496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 118596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 118696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static void copy(Reader input, OutputStream output, String encoding) 118796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 118896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (encoding == null) { 118996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, output); 119096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } else { 119196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project OutputStreamWriter out = new OutputStreamWriter(output, encoding); 119296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project copy(input, out); 119396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // XXX Unless anyone is planning on rewriting OutputStreamWriter, 119496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // we have to flush here. 119596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project out.flush(); 119696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 119796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 119896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 119996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // content equals 120096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project //----------------------------------------------------------------------- 120196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 120296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Compare the contents of two Streams to determine if they are equal or 120396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * not. 120496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 120596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally using 120696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedInputStream</code> if they are not already buffered. 120796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 120896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input1 the first stream 120996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input2 the second stream 121096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return true if the content of the streams are equal or they both don't 121196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * exist, false otherwise 121296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if either input is null 121396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 121496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 121596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static boolean contentEquals(InputStream input1, InputStream input2) 121696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 121796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (!(input1 instanceof BufferedInputStream)) { 121896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input1 = new BufferedInputStream(input1); 121996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 122096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (!(input2 instanceof BufferedInputStream)) { 122196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input2 = new BufferedInputStream(input2); 122296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 122396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 122496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch = input1.read(); 122596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project while (-1 != ch) { 122696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch2 = input2.read(); 122796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (ch != ch2) { 122896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return false; 122996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 123096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ch = input1.read(); 123196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 123296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 123396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch2 = input2.read(); 123496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return (ch2 == -1); 123596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 123696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 123796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 123896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Compare the contents of two Readers to determine if they are equal or 123996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * not. 124096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <p> 124196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * This method buffers the input internally using 124296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <code>BufferedReader</code> if they are not already buffered. 124396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 124496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input1 the first reader 124596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param input2 the second reader 124696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @return true if the content of the readers are equal or they both don't 124796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * exist, false otherwise 124896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws NullPointerException if either input is null 124996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @throws IOException if an I/O error occurs 125096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @since Commons IO 1.1 125196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 125296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static boolean contentEquals(Reader input1, Reader input2) 125396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project throws IOException { 125496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (!(input1 instanceof BufferedReader)) { 125596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input1 = new BufferedReader(input1); 125696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 125796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (!(input2 instanceof BufferedReader)) { 125896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project input2 = new BufferedReader(input2); 125996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 126096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 126196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch = input1.read(); 126296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project while (-1 != ch) { 126396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch2 = input2.read(); 126496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (ch != ch2) { 126596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return false; 126696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 126796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ch = input1.read(); 126896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 126996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 127096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int ch2 = input2.read(); 127196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return (ch2 == -1); 127296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 127396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 127496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 1275