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