scolebourne    2004/08/13 16:51:41

  Modified:    io/src/test/org/apache/commons/io CopyUtilsTest.java
               io/src/java/org/apache/commons/io CopyUtils.java
                        FileUtils.java
  Log:
  Deprecate CopyUtils (reverting to v1.0)
  
  Revision  Changes    Path
  1.8       +1 -183    
jakarta-commons/io/src/test/org/apache/commons/io/CopyUtilsTest.java
  
  Index: CopyUtilsTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/io/src/test/org/apache/commons/io/CopyUtilsTest.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- CopyUtilsTest.java        31 Jul 2004 10:40:47 -0000      1.7
  +++ CopyUtilsTest.java        13 Aug 2004 23:51:41 -0000      1.8
  @@ -80,7 +80,6 @@
       // Tests
       // ----------------------------------------------------------------
   
  -    //-----------------------------------------------------------------------
       public void testCopy_byteArrayToOutputStream() throws Exception {
           ByteArrayOutputStream baout = new ByteArrayOutputStream();
           OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  @@ -103,32 +102,6 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    public void testCopy_byteArrayToWriter_nullEncoding() throws Exception {
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -        Writer writer = new java.io.OutputStreamWriter(baout, "US-ASCII");
  -        
  -        CopyUtils.copy(inData, writer, null);
  -        writer.flush();
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_byteArrayToWriter_Encoding() throws Exception {
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -        Writer writer = new java.io.OutputStreamWriter(baout, "US-ASCII");
  -        
  -        CopyUtils.copy(inData, writer, "UTF8");
  -        writer.flush();
  -
  -        byte[] bytes = baout.toByteArray();
  -        bytes = new String(bytes, "UTF8").getBytes("US-ASCII");
  -        assertTrue("Content differs", Arrays.equals(inData, bytes));
  -    }
  -
  -    //-----------------------------------------------------------------------
       public void testCopy_inputStreamToOutputStream() throws Exception {
           InputStream in = new ByteArrayInputStream(inData);
           in = new YellOnCloseInputStream(in);
  @@ -159,40 +132,6 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    public void testCopy_inputStreamToWriter_nullEncoding() throws Exception {
  -        InputStream in = new ByteArrayInputStream(inData);
  -        in = new YellOnCloseInputStream(in);
  -
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -        Writer writer = new java.io.OutputStreamWriter(baout, "US-ASCII");
  -        
  -        CopyUtils.copy(in, writer, null);
  -        writer.flush();
  -
  -        assertTrue("Not all bytes were read", in.available() == 0);
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_inputStreamToWriter_Encoding() throws Exception {
  -        InputStream in = new ByteArrayInputStream(inData);
  -        in = new YellOnCloseInputStream(in);
  -
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -        Writer writer = new java.io.OutputStreamWriter(baout, "US-ASCII");
  -        
  -        CopyUtils.copy(in, writer, "UTF8");
  -        writer.flush();
  -
  -        assertTrue("Not all bytes were read", in.available() == 0);
  -        byte[] bytes = baout.toByteArray();
  -        bytes = new String(bytes, "UTF8").getBytes("US-ASCII");
  -        assertTrue("Content differs", Arrays.equals(inData, bytes));
  -    }
  -
  -    //-----------------------------------------------------------------------
       public void testCopy_readerToOutputStream() throws Exception {
           InputStream in = new ByteArrayInputStream(inData);
           in = new YellOnCloseInputStream(in);
  @@ -213,39 +152,6 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    public void testCopy_readerToOutputStream_nullEncoding() throws Exception {
  -        InputStream in = new ByteArrayInputStream(inData);
  -        in = new YellOnCloseInputStream(in);
  -        Reader reader = new java.io.InputStreamReader(in, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(reader, out, null);
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_readerToOutputStream_Encoding() throws Exception {
  -        InputStream in = new ByteArrayInputStream(inData);
  -        in = new YellOnCloseInputStream(in);
  -        Reader reader = new java.io.InputStreamReader(in, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(reader, out, "UTF16");
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -        
  -        byte[] bytes = baout.toByteArray();
  -        bytes = new String(bytes, "UTF16").getBytes("US-ASCII");
  -        assertTrue("Content differs", Arrays.equals(inData, bytes));
  -    }
  -
       public void testCopy_readerToWriter() throws Exception {
           InputStream in = new ByteArrayInputStream(inData);
           in = new YellOnCloseInputStream(in);
  @@ -265,7 +171,6 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    //-----------------------------------------------------------------------
       public void testCopy_stringToOutputStream() throws Exception {
           String str = new String(inData, "US-ASCII");
           
  @@ -284,35 +189,6 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    public void testCopy_stringToOutputStream_nullEncoding() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(str, out, null);
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_stringToOutputStream_Encoding() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(str, out, "UTF16");
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -        
  -        byte[] bytes = baout.toByteArray();
  -        bytes = new String(bytes, "UTF16").getBytes("US-ASCII");
  -        assertTrue("Content differs", Arrays.equals(inData, bytes));
  -    }
  -
       public void testCopy_stringToWriter() throws Exception {
           String str = new String(inData, "US-ASCII");
   
  @@ -327,62 +203,4 @@
           assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
       }
   
  -    //-----------------------------------------------------------------------
  -    public void testCopy_charArrayToOutputStream() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(str.toCharArray(), out);
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_charArrayToOutputStream_nullEncoding() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(str.toCharArray(), out, null);
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -    public void testCopy_charArrayToOutputStream_Encoding() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -        
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -
  -        CopyUtils.copy(str.toCharArray(), out, "UTF16");
  -        // note: this method *does* flush.
  -        // note: we don't flush here; this IOUtils method does it for us
  -        
  -        byte[] bytes = baout.toByteArray();
  -        bytes = new String(bytes, "UTF16").getBytes("US-ASCII");
  -        assertTrue("Content differs", Arrays.equals(inData, bytes));
  -    }
  -
  -    public void testCopy_charArrayToWriter() throws Exception {
  -        String str = new String(inData, "US-ASCII");
  -
  -        ByteArrayOutputStream baout = new ByteArrayOutputStream();
  -        OutputStream out = new YellOnFlushAndCloseOutputStream(baout, false, true);
  -        Writer writer = new java.io.OutputStreamWriter(baout, "US-ASCII");
  -
  -        CopyUtils.copy(str.toCharArray(), writer);
  -        writer.flush();
  -
  -        assertEquals("Sizes differ", inData.length, baout.size());
  -        assertTrue("Content differs", Arrays.equals(inData, baout.toByteArray()));
  -    }
  -
  -}
  +} // CopyUtilsTest
  
  
  
  1.9       +143 -241  jakarta-commons/io/src/java/org/apache/commons/io/CopyUtils.java
  
  Index: CopyUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/io/src/java/org/apache/commons/io/CopyUtils.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CopyUtils.java    31 Jul 2004 10:40:47 -0000      1.8
  +++ CopyUtils.java    13 Aug 2004 23:51:41 -0000      1.9
  @@ -16,7 +16,6 @@
   package org.apache.commons.io;
   
   import java.io.ByteArrayInputStream;
  -import java.io.CharArrayReader;
   import java.io.IOException;
   import java.io.InputStream;
   import java.io.InputStreamReader;
  @@ -87,9 +86,6 @@
    *
    * 7     copy        byte[]              Writer          3
    * 8     copy        byte[]              OutputStream    (trivial)
  - *
  - * 9     copy        char[]              OutputStream    4
  - * 10    copy        char[]              Writer          (trivial)
    * </pre>
    *
    * <p>Note that only the first two methods shuffle bytes; the rest use these
  @@ -102,13 +98,15 @@
    * @author Peter Donald
    * @author Jeff Turner
    * @author Matthew Hawthorne
  - * @author Stephen Colebourne
    * @version $Id$
  + * @deprecated Use IOUtils. Will be removed in 2.0.
  + *  Methods renamed to IOUtils.write() or IOUtils.copy().
  + *  Null handling behaviour changed in IOUtils (null data does not throw 
NullPointerException).
    */
   public class CopyUtils {
   
       /**
  -     * The default buffer size to use.
  +     * The name says it all.
        */
       private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
   
  @@ -117,68 +115,75 @@
        */
       public CopyUtils() {}
   
  -    // from byte[]
  -    //-----------------------------------------------------------------------
  +    // ----------------------------------------------------------------
  +    // byte[] -> OutputStream
  +    // ----------------------------------------------------------------
  +
       /**
        * Copy bytes from a <code>byte[]</code> to an <code>OutputStream</code>.
  -     * 
  -     * @param input  the byte array to read from, do not modify during output
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  +     * @param input the byte array to read from
  +     * @param output the <code>OutputStream</code> to write to
  +     * @throws IOException In case of an I/O problem
        */
  -    public static void copy(byte[] input, OutputStream output) throws IOException {
  +    public static void copy(byte[] input, OutputStream output)
  +            throws IOException {
           output.write(input);
       }
   
  +    // ----------------------------------------------------------------
  +    // byte[] -> Writer
  +    // ----------------------------------------------------------------
  +
       /**
  -     * Copy bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
  -     * using the default character encoding of the platform.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] ByteArrayInputStream} and [EMAIL 
PROTECTED] InputStreamReader}.
  -     * 
  -     * @param input  the byte array to read from, do not modify during output
  -     * @param output  the <code>Writer</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  +     * Copy and convert bytes from a <code>byte[]</code> to chars on a
  +     * <code>Writer</code>.
  +     * The platform's default encoding is used for the byte-to-char conversion.
  +     * @param input the byte array to read from
  +     * @param output the <code>Writer</code> to write to
  +     * @throws IOException In case of an I/O problem
        */
  -    public static void copy(byte[] input, Writer output) throws IOException {
  +    public static void copy(byte[] input, Writer output)
  +            throws IOException {
           ByteArrayInputStream in = new ByteArrayInputStream(input);
           copy(in, output);
       }
   
  +
       /**
  -     * Copy bytes from a <code>byte[]</code> to chars on a <code>Writer</code>
  -     * using the specified character encoding.
  -     * <p>
  -     * Character encoding names can be found at
  -     * <a href="http://www.iana.org/assignments/character-sets";>IANA</a>.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] ByteArrayInputStream} and [EMAIL 
PROTECTED] InputStreamReader}.
  -     * 
  -     * @param input  the byte array to read from, do not modify during output
  -     * @param output  the <code>Writer</code> to write to
  -     * @param encoding  the encoding to use, null means platform default
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(byte[] input, Writer output, String encoding) throws 
IOException {
  +     * Copy and convert bytes from a <code>byte[]</code> to chars on a
  +     * <code>Writer</code>, using the specified encoding.
  +     * @param input the byte array to read from
  +     * @param output the <code>Writer</code> to write to
  +     * @param encoding The name of a supported character encoding. See the
  +     * <a href="http://www.iana.org/assignments/character-sets";>IANA
  +     * Charset Registry</a> for a list of valid encoding types.
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(
  +            byte[] input,
  +            Writer output,
  +            String encoding)
  +                throws IOException {
           ByteArrayInputStream in = new ByteArrayInputStream(input);
           copy(in, output, encoding);
       }
   
  -    // from InputStream
  -    //-----------------------------------------------------------------------
  +
  +    // ----------------------------------------------------------------
  +    // Core copy methods
  +    // ----------------------------------------------------------------
  +
       /**
        * Copy bytes from an <code>InputStream</code> to an <code>OutputStream</code>.
  -     * 
  -     * @param input  the <code>InputStream</code> to read from
  -     * @param output  the <code>OutputStream</code> to write to
  +     * @param input the <code>InputStream</code> to read from
  +     * @param output the <code>OutputStream</code> to write to
        * @return the number of bytes copied
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  +     * @throws IOException In case of an I/O problem
        */
  -    public static int copy(InputStream input, OutputStream output) throws 
IOException {
  +    public static int copy(
  +            InputStream input,
  +            OutputStream output)
  +                throws IOException {
           byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
           int count = 0;
           int n = 0;
  @@ -189,110 +194,21 @@
           return count;
       }
   
  -    /**
  -     * Copy bytes from an <code>InputStream</code> to chars on a <code>Writer</code>
  -     * using the default character encoding of the platform.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] InputStreamReader}.
  -     * 
  -     * @param input  the <code>InputStream</code> to read from
  -     * @param output  the <code>Writer</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(InputStream input, Writer output) throws IOException {
  -        InputStreamReader in = new InputStreamReader(input);
  -        copy(in, output);
  -    }
  +    // ----------------------------------------------------------------
  +    // Reader -> Writer
  +    // ----------------------------------------------------------------
   
       /**
  -     * Copy bytes from an <code>InputStream</code> to chars on a <code>Writer</code>
  -     * using the specified character encoding.
  -     * <p>
  -     * Character encoding names can be found at
  -     * <a href="http://www.iana.org/assignments/character-sets";>IANA</a>.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] InputStreamReader}.
  -     * 
  -     * @param input  the <code>InputStream</code> to read from
  -     * @param output  the <code>Writer</code> to write to
  -     * @param encoding  the encoding to use, null means platform default
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(InputStream input, Writer output, String encoding) 
throws IOException {
  -        if (encoding == null) {
  -            copy(input, output);
  -        } else {
  -            InputStreamReader in = new InputStreamReader(input, encoding);
  -            copy(in, output);
  -        }
  -    }
  -
  -    // from char[]
  -    //-----------------------------------------------------------------------
  -    /**
  -     * Copy chars from a <code>char[]</code> to a <code>Writer</code>
  -     * using the default character encoding of the platform.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] CharArrayReader}.
  -     * 
  -     * @param input  the char array to read from, do not modify during output
  -     * @param output  the <code>Writer</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(char[] input, Writer output) throws IOException {
  -        output.write(input);
  -    }
  -
  -    /**
  -     * Copy chars from a <code>char[]</code> to bytes on an 
<code>OutputStream</code>.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] CharArrayReader} and [EMAIL PROTECTED] 
OutputStreamWriter}.
  -     * 
  -     * @param input  the char array to read from, do not modify during output
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(char[] input, OutputStream output) throws IOException {
  -        CharArrayReader in = new CharArrayReader(input);
  -        copy(in, output);
  -    }
  -
  -    /**
  -     * Copy chars from a <code>char[]</code> to bytes on an 
<code>OutputStream</code>
  -     * using the specified character encoding.
  -     * <p>
  -     * Character encoding names can be found at
  -     * <a href="http://www.iana.org/assignments/character-sets";>IANA</a>.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] CharArrayReader} and [EMAIL PROTECTED] 
OutputStreamWriter}.
  -     * 
  -     * @param input  the char array to read from, do not modify during output
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @param encoding  the encoding to use, null means platform default
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(char[] input, OutputStream output, String encoding) 
throws IOException {
  -        CharArrayReader in = new CharArrayReader(input);
  -        copy(in, output, encoding);
  -    }
  -
  -    // from Reader
  -    //-----------------------------------------------------------------------
  -    /**
        * Copy chars from a <code>Reader</code> to a <code>Writer</code>.
  -     * 
  -     * @param input  the <code>Reader</code> to read from
  -     * @param output  the <code>Writer</code> to write to
  +     * @param input the <code>Reader</code> to read from
  +     * @param output the <code>Writer</code> to write to
        * @return the number of characters copied
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  +     * @throws IOException In case of an I/O problem
        */
  -    public static int copy(Reader input, Writer output) throws IOException {
  +    public static int copy(
  +            Reader input,
  +            Writer output)
  +                throws IOException {
           char[] buffer = new char[DEFAULT_BUFFER_SIZE];
           int count = 0;
           int n = 0;
  @@ -303,82 +219,82 @@
           return count;
       }
   
  -    /**
  -     * Copy chars from a <code>Reader</code> to bytes on an 
<code>OutputStream</code>
  -     * using the default character encoding of the platform, and calling flush.
  -     * <p>
  -     * Due to the implementation of OutputStreamWriter, this method performs a 
flush.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] OutputStreamWriter}.
  -     * 
  -     * @param input  the <code>Reader</code> to read from
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(Reader input, OutputStream output) throws IOException {
  -        OutputStreamWriter out = new OutputStreamWriter(output);
  -        copy(input, out);
  -        // XXX Unless anyone is planning on rewriting OutputStreamWriter, we have 
to flush here.
  -        out.flush();
  +    // ----------------------------------------------------------------
  +    // InputStream -> Writer
  +    // ----------------------------------------------------------------
  +
  +    /**
  +     * Copy and convert bytes from an <code>InputStream</code> to chars on a
  +     * <code>Writer</code>.
  +     * The platform's default encoding is used for the byte-to-char conversion.
  +     * @param input the <code>InputStream</code> to read from
  +     * @param output the <code>Writer</code> to write to
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(
  +            InputStream input,
  +            Writer output)
  +                throws IOException {
  +        InputStreamReader in = new InputStreamReader(input);
  +        copy(in, output);
       }
   
       /**
  -     * Copy chars from a <code>Reader</code> to bytes on an 
<code>OutputStream</code>
  -     * using the specified character encoding, and calling flush.
  -     * <p>
  -     * Character encoding names can be found at
  -     * <a href="http://www.iana.org/assignments/character-sets";>IANA</a>.
  -     * <p>
  -     * Due to the implementation of OutputStreamWriter, this method performs a 
flush.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] OutputStreamWriter}.
  -     * 
  -     * @param input  the <code>Reader</code> to read from
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @param encoding  the encoding to use, null means platform default
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(Reader input, OutputStream output, String encoding) 
throws IOException {
  -        if (encoding == null) {
  -            copy(input, output);
  -        } else {
  -            OutputStreamWriter out = new OutputStreamWriter(output, encoding);
  -            copy(input, out);
  -            // XXX Unless anyone is planning on rewriting OutputStreamWriter, we 
have to flush here.
  -            out.flush();
  -        }
  +     * Copy and convert bytes from an <code>InputStream</code> to chars on a
  +     * <code>Writer</code>, using the specified encoding.
  +     * @param input the <code>InputStream</code> to read from
  +     * @param output the <code>Writer</code> to write to
  +     * @param encoding The name of a supported character encoding. See the
  +     * <a href="http://www.iana.org/assignments/character-sets";>IANA
  +     * Charset Registry</a> for a list of valid encoding types.
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(
  +            InputStream input,
  +            Writer output,
  +            String encoding)
  +                throws IOException {
  +        InputStreamReader in = new InputStreamReader(input, encoding);
  +        copy(in, output);
       }
   
  -    // from String
  -    //-----------------------------------------------------------------------
  +
  +    // ----------------------------------------------------------------
  +    // Reader -> OutputStream
  +    // ----------------------------------------------------------------
  +
       /**
  -     * Copy chars from a <code>String</code> to a <code>Writer</code>.
  -     * 
  -     * @param input  the <code>String</code> to read from
  -     * @param output  the <code>Writer</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(String input, Writer output) throws IOException {
  -        output.write(input);
  +     * Serialize chars from a <code>Reader</code> to bytes on an 
  +     * <code>OutputStream</code>, and flush the <code>OutputStream</code>.
  +     * @param input the <code>Reader</code> to read from
  +     * @param output the <code>OutputStream</code> to write to
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(
  +            Reader input,
  +            OutputStream output)
  +                throws IOException {
  +        OutputStreamWriter out = new OutputStreamWriter(output);
  +        copy(input, out);
  +        // XXX Unless anyone is planning on rewriting OutputStreamWriter, we have 
to flush here.
  +        out.flush();
       }
   
  +    // ----------------------------------------------------------------
  +    // String -> OutputStream
  +    // ----------------------------------------------------------------
  +
       /**
  -     * Copy chars from a <code>String</code> to bytes on an 
<code>OutputStream</code>
  -     * using the default character encoding of the platform, and calling flush.
  -     * <p>
  -     * Due to the implementation of OutputStreamWriter, this method performs a 
flush.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] StringReader} and [EMAIL PROTECTED] 
OutputStreamWriter}.
  -     * 
  -     * @param input  the <code>String</code> to read from
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(String input, OutputStream output) throws IOException {
  +     * Serialize chars from a <code>String</code> to bytes on an 
<code>OutputStream</code>, and
  +     * flush the <code>OutputStream</code>.
  +     * @param input the <code>String</code> to read from
  +     * @param output the <code>OutputStream</code> to write to
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(
  +            String input,
  +            OutputStream output)
  +                throws IOException {
           StringReader in = new StringReader(input);
           OutputStreamWriter out = new OutputStreamWriter(output);
           copy(in, out);
  @@ -386,33 +302,19 @@
           out.flush();
       }
   
  +    // ----------------------------------------------------------------
  +    // String -> Writer
  +    // ----------------------------------------------------------------
  +
       /**
  -     * Copy chars from a <code>String</code> to bytes on an 
<code>OutputStream</code>
  -     * using the specified character encoding, and calling flush.
  -     * <p>
  -     * Character encoding names can be found at
  -     * <a href="http://www.iana.org/assignments/character-sets";>IANA</a>.
  -     * <p>
  -     * Due to the implementation of OutputStreamWriter, this method performs a 
flush.
  -     * <p>
  -     * This method uses [EMAIL PROTECTED] StringReader} and [EMAIL PROTECTED] 
OutputStreamWriter}.
  -     * 
  -     * @param input  the <code>String</code> to read from
  -     * @param output  the <code>OutputStream</code> to write to
  -     * @param encoding  the encoding to use, null means platform default
  -     * @throws NullPointerException if the input or output is null
  -     * @throws IOException if an I/O error occurs
  -     */
  -    public static void copy(String input, OutputStream output, String encoding) 
throws IOException {
  -        if (encoding == null) {
  -            copy(input, output);
  -        } else {
  -            StringReader in = new StringReader(input);
  -            OutputStreamWriter out = new OutputStreamWriter(output, encoding);
  -            copy(in, out);
  -            // XXX Unless anyone is planning on rewriting OutputStreamWriter, we 
have to flush here.
  -            out.flush();
  -        }
  +     * Copy chars from a <code>String</code> to a <code>Writer</code>.
  +     * @param input the <code>String</code> to read from
  +     * @param output the <code>Writer</code> to write to
  +     * @throws IOException In case of an I/O problem
  +     */
  +    public static void copy(String input, Writer output)
  +                throws IOException {
  +        output.write(input);
       }
   
  -}
  +} // CopyUtils
  
  
  
  1.37      +3 -3      jakarta-commons/io/src/java/org/apache/commons/io/FileUtils.java
  
  Index: FileUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/io/src/java/org/apache/commons/io/FileUtils.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- FileUtils.java    24 Jul 2004 09:58:41 -0000      1.36
  +++ FileUtils.java    13 Aug 2004 23:51:41 -0000      1.37
  @@ -456,7 +456,7 @@
           try {
               FileOutputStream output = new FileOutputStream(destination);
               try {
  -                CopyUtils.copy(input, output);
  +                IOUtils.copy(input, output);
               } finally {
                   IOUtils.closeQuietly(output);
               }
  @@ -514,7 +514,7 @@
           try {
               FileOutputStream output = new FileOutputStream(destination);
               try {
  -                CopyUtils.copy(input, output);
  +                IOUtils.copy(input, output);
               } finally {
                   IOUtils.closeQuietly(output);
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to