@@ -413,6 +413,19 @@ public static InputStream toBufferedInputStream(InputStream input) throws IOExce
413413 return ByteArrayOutputStream .toBufferedInputStream (input );
414414 }
415415
416+ /**
417+ * Returns the given reader if it is a {@link BufferedReader}, otherwise creates a toBufferedReader for the given
418+ * reader.
419+ *
420+ * @param reader
421+ * the reader to wrap or return
422+ * @return the given reader or a new {@link BufferedReader} for the given reader
423+ * @since 2.2
424+ */
425+ public static BufferedReader toBufferedReader (Reader reader ) {
426+ return reader instanceof BufferedReader ? (BufferedReader ) reader : new BufferedReader (reader );
427+ }
428+
416429 // read toByteArray
417430 //-----------------------------------------------------------------------
418431 /**
@@ -833,7 +846,7 @@ public static List<String> readLines(InputStream input, String encoding) throws
833846 * @since 1.1
834847 */
835848 public static List <String > readLines (Reader input ) throws IOException {
836- BufferedReader reader = new BufferedReader (input );
849+ BufferedReader reader = toBufferedReader (input );
837850 List <String > list = new ArrayList <String >();
838851 String line = reader .readLine ();
839852 while (line != null ) {
@@ -1858,12 +1871,9 @@ public static boolean contentEquals(InputStream input1, InputStream input2)
18581871 */
18591872 public static boolean contentEquals (Reader input1 , Reader input2 )
18601873 throws IOException {
1861- if (!(input1 instanceof BufferedReader )) {
1862- input1 = new BufferedReader (input1 );
1863- }
1864- if (!(input2 instanceof BufferedReader )) {
1865- input2 = new BufferedReader (input2 );
1866- }
1874+
1875+ input1 = toBufferedReader (input1 );
1876+ input2 = toBufferedReader (input2 );
18671877
18681878 int ch = input1 .read ();
18691879 while (EOF != ch ) {
@@ -1894,18 +1904,8 @@ public static boolean contentEquals(Reader input1, Reader input2)
18941904 */
18951905 public static boolean contentEqualsIgnoreEOL (Reader input1 , Reader input2 )
18961906 throws IOException {
1897- BufferedReader br1 ;
1898- if (input1 instanceof BufferedReader ) {
1899- br1 = (BufferedReader ) input1 ;
1900- } else {
1901- br1 = new BufferedReader (input1 );
1902- }
1903- BufferedReader br2 ;
1904- if (input2 instanceof BufferedReader ) {
1905- br2 = (BufferedReader ) input2 ;
1906- } else {
1907- br2 = new BufferedReader (input2 );
1908- }
1907+ BufferedReader br1 = toBufferedReader (input1 );
1908+ BufferedReader br2 = toBufferedReader (input2 );
19091909
19101910 String line1 = br1 .readLine ();
19111911 String line2 = br2 .readLine ();
0 commit comments