001: /*
002: * @(#)FilterReader.java 1.18 06/10/10
003: *
004: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: *
026: */
027:
028: package java.io;
029:
030: /**
031: * Abstract class for reading filtered character streams.
032: * The abstract class <code>FilterReader</code> itself
033: * provides default methods that pass all requests to
034: * the contained stream. Subclasses of <code>FilterReader</code>
035: * should override some of these methods and may also provide
036: * additional methods and fields.
037: *
038: * @version 1.11, 00/02/02
039: * @author Mark Reinhold
040: * @since JDK1.1
041: */
042:
043: public abstract class FilterReader extends Reader {
044:
045: /**
046: * The underlying character-input stream.
047: */
048: protected Reader in;
049:
050: /**
051: * Create a new filtered reader.
052: *
053: * @param in a Reader object providing the underlying stream.
054: * @throws NullPointerException if <code>in</code> is <code>null</code>
055: */
056: protected FilterReader(Reader in) {
057: super (in);
058: this .in = in;
059: }
060:
061: /**
062: * Read a single character.
063: *
064: * @exception IOException If an I/O error occurs
065: */
066: public int read() throws IOException {
067: return in.read();
068: }
069:
070: /**
071: * Read characters into a portion of an array.
072: *
073: * @exception IOException If an I/O error occurs
074: */
075: public int read(char cbuf[], int off, int len) throws IOException {
076: return in.read(cbuf, off, len);
077: }
078:
079: /**
080: * Skip characters.
081: *
082: * @exception IOException If an I/O error occurs
083: */
084: public long skip(long n) throws IOException {
085: return in.skip(n);
086: }
087:
088: /**
089: * Tell whether this stream is ready to be read.
090: *
091: * @exception IOException If an I/O error occurs
092: */
093: public boolean ready() throws IOException {
094: return in.ready();
095: }
096:
097: /**
098: * Tell whether this stream supports the mark() operation.
099: */
100: public boolean markSupported() {
101: return in.markSupported();
102: }
103:
104: /**
105: * Mark the present position in the stream.
106: *
107: * @exception IOException If an I/O error occurs
108: */
109: public void mark(int readAheadLimit) throws IOException {
110: in.mark(readAheadLimit);
111: }
112:
113: /**
114: * Reset the stream.
115: *
116: * @exception IOException If an I/O error occurs
117: */
118: public void reset() throws IOException {
119: in.reset();
120: }
121:
122: /**
123: * Close the stream.
124: *
125: * @exception IOException If an I/O error occurs
126: */
127: public void close() throws IOException {
128: in.close();
129: }
130:
131: }
|