question: public void read ( Appendable dest ) throws IOException { if ( _inputStream == null ) throw new IOException ( "No input stream or stream closed" ) ; while ( true ) { if ( _start >= _end ) { _start = 0 ; _end = _inputStream . read ( _bytes , 0 , _bytes . length ) ; if ( _end <= 0 ) { break ; } } byte b = _bytes [ _start ] ; if ( b >= 0 ) { dest . append ( ( char ) b ) ; _start ++ ; } else { int code = read2 ( ) ; if ( code < 0x10000 ) { dest . append ( ( char ) code ) ; } else if ( code <= 0x10ffff ) { dest . append ( ( char ) ( ( ( code - 0x10000 ) > > 10 ) + 0xd800 ) ) ; dest . append ( ( char ) ( ( ( code - 0x10000 ) & 0x3ff ) + 0xdc00 ) ) ; } else { throw new CharConversionException ( "Cannot convert U+" + Integer . toHexString ( code ) + " to char (code greater than U+10FFFF)" ) ; } } } }
target:  Reads characters into the specified appendable.  This method will block until the end of the stream is reached.