Mega Code Archive

 
Categories / Java / File Input Output
 

Compare the contents of two Readers to determine if they are equal or not

/*  * Licensed to the Apache Software Foundation (ASF) under one or more  * contributor license agreements.  See the NOTICE file distributed with  * this work for additional information regarding copyright ownership.  * The ASF licenses this file to You under the Apache License, Version 2.0  * (the "License"); you may not use this file except in compliance with  * the License.  You may obtain a copy of the License at  *  *      http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */ import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; /** * Origin of code: Apache Avalon (Excalibur)  *   * @author Peter Donald  * @author Jeff Turner  * @author Matthew Hawthorne  * @author Stephen Colebourne  * @author Gareth Davis  * @version CVS $Revision$ $Date$*/ public class Main {   /**    * Compare the contents of two Readers to determine if they are equal or not.    * <p>    * This method buffers the input internally using <code>BufferedReader</code> if they are not    * already buffered.    *     * @param input1    *            the first reader    * @param input2    *            the second reader    * @return true if the content of the readers are equal or they both don't exist, false    *         otherwise    * @throws NullPointerException    *             if either input is null    * @throws IOException    *             if an I/O error occurs    * @since 1.1    */   public static boolean contentEquals(Reader input1, Reader input2) throws IOException   {     if (!(input1 instanceof BufferedReader))     {       input1 = new BufferedReader(input1);     }     if (!(input2 instanceof BufferedReader))     {       input2 = new BufferedReader(input2);     }     int ch = input1.read();     while (-1 != ch)     {       int ch2 = input2.read();       if (ch != ch2)       {         return false;       }       ch = input1.read();     }     int ch2 = input2.read();     return (ch2 == -1);   } }