RecyclingInputStreamReader extends Reader { @Override public long skip(final long n) throws IOException { return this.reader.skip(n); } RecyclingInputStreamReader(final InputStream in);  RecyclingInputStreamReader(final InputStream in, final String charsetName);  RecyclingInputStreamReader(final InputStream in, final Charset cs); @Override void close(); @Override int read(final char[] cbuf, final int off, final int len); @Override void mark(final int readAheadLimit); @Override boolean markSupported(); @Override int read(); @Override int read(final char[] cbuf); @Override int read(final CharBuffer target); @Override boolean ready(); @Override void reset(); @Override long skip(final long n); @Override String toString();  }
@Test public void testSkip() throws IOException { RecyclingInputStreamReader reader = new RecyclingInputStreamReader(istream, "ASCII"); try { reader.skip(1L); CharBuffer cbuf = CharBuffer.allocate(HELLO.length()); reader.read(cbuf); assertEquals(HELLO.substring(1), new String(cbuf.array()).trim()); } finally { reader.close(); } }