001: /*
002: * @(#)FilterWriter.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 writing filtered character streams.
032: * The abstract class <code>FilterWriter</code> itself
033: * provides default methods that pass all requests to the
034: * contained stream. Subclasses of <code>FilterWriter</code>
035: * should override some of these methods and may also
036: * provide 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 FilterWriter extends Writer {
044:
045: /**
046: * The underlying character-output stream.
047: */
048: protected Writer out;
049:
050: /**
051: * Create a new filtered writer.
052: *
053: * @param out a Writer object to provide the underlying stream.
054: * @throws NullPointerException if <code>out</code> is <code>null</code>
055: */
056: protected FilterWriter(Writer out) {
057: super (out);
058: this .out = out;
059: }
060:
061: /**
062: * Write a single character.
063: *
064: * @exception IOException If an I/O error occurs
065: */
066: public void write(int c) throws IOException {
067: out.write(c);
068: }
069:
070: /**
071: * Write a portion of an array of characters.
072: *
073: * @param cbuf Buffer of characters to be written
074: * @param off Offset from which to start reading characters
075: * @param len Number of characters to be written
076: *
077: * @exception IOException If an I/O error occurs
078: */
079: public void write(char cbuf[], int off, int len) throws IOException {
080: out.write(cbuf, off, len);
081: }
082:
083: /**
084: * Write a portion of a string.
085: *
086: * @param str String to be written
087: * @param off Offset from which to start reading characters
088: * @param len Number of characters to be written
089: *
090: * @exception IOException If an I/O error occurs
091: */
092: public void write(String str, int off, int len) throws IOException {
093: out.write(str, off, len);
094: }
095:
096: /**
097: * Flush the stream.
098: *
099: * @exception IOException If an I/O error occurs
100: */
101: public void flush() throws IOException {
102: out.flush();
103: }
104:
105: /**
106: * Close the stream.
107: *
108: * @exception IOException If an I/O error occurs
109: */
110: public void close() throws IOException {
111: out.close();
112: }
113:
114: }
|