001: /*
002: * Copyright (c) 1998-2001 Caucho Technology -- all rights reserved
003: *
004: * This file is part of Resin(R) Open Source
005: *
006: * Each copy or derived work must preserve the copyright notice and this
007: * notice unmodified.
008: *
009: * Resin Open Source is free software; you can redistribute it and/or modify
010: * it under the terms of the GNU General Public License as published by
011: * the Free Software Foundation; either version 2 of the License, or
012: * (at your option) any later version.
013: *
014: * Resin Open Source is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017: * of NON-INFRINGEMENT. See the GNU General Public License for more
018: * details.
019: *
020: * You should have received a copy of the GNU General Public License
021: * along with Resin Open Source; if not, write to the
022: * Free SoftwareFoundation, Inc.
023: * 59 Temple Place, Suite 330
024: * Boston, MA 02111-1307 USA
025: *
026: * @author Scott Ferguson
027: *
028: * $Id: ServletOutputStream.java,v 1.2 2004/09/29 00:12:46 cvs Exp $
029: */
030:
031: package javax.servlet;
032:
033: import java.io.IOException;
034: import java.io.OutputStream;
035:
036: /**
037: * Servlets can use ServletOutputStream to write binary data to
038: * the response. ServletOutputStream provides several methods similar
039: * to the methods of PrintWriter.
040: *
041: * <p>Typically, servlets will use response.getOutputStream to get
042: * this object.
043: *
044: * <p>Note, the PrintWriter-like methods do not handle character
045: * encoding properly. If you need non-ascii character output, use
046: * getWriter().
047: *
048: * <p>Buffering of the output stream is controlled by the Response object.
049: */
050: public abstract class ServletOutputStream extends OutputStream {
051: /**
052: * Prints a string to the stream. Note, this method does not properly
053: * handle character encoding.
054: *
055: * @param s the string to write.
056: */
057: public void print(String s) throws IOException {
058: if (s == null)
059: s = "null";
060:
061: byte[] bytes = s.getBytes();
062: write(bytes, 0, bytes.length);
063: }
064:
065: /**
066: * Prints a boolean value to output.
067: *
068: * @param b the boolean value
069: */
070: public void print(boolean b) throws IOException {
071: print(String.valueOf(b));
072: }
073:
074: /**
075: * Prints a character to the output. Note, this doesn't handle
076: * character encoding properly.
077: *
078: * @param c the character value
079: */
080: public void print(char c) throws IOException {
081: print(String.valueOf(c));
082: }
083:
084: /**
085: * Prints an integer to the output.
086: *
087: * @param i the integer value
088: */
089: public void print(int i) throws IOException {
090: print(String.valueOf(i));
091: }
092:
093: /**
094: * Prints a long to the output.
095: *
096: * @param l the long value
097: */
098: public void print(long l) throws IOException {
099: print(String.valueOf(l));
100: }
101:
102: /**
103: * Prints a float to the output.
104: *
105: * @param f the float value
106: */
107: public void print(float f) throws IOException {
108: print(String.valueOf(f));
109: }
110:
111: /**
112: * Prints a double to the output.
113: *
114: * @param d the double value
115: */
116: public void print(double d) throws IOException {
117: print(String.valueOf(d));
118: }
119:
120: /**
121: * Prints a newline to the output.
122: */
123: public void println() throws IOException {
124: print("\n");
125: }
126:
127: /**
128: * Prints a string to the output, followed by a newline. Note,
129: * character encoding is not properly handled.
130: *
131: * @param s the string value
132: */
133: public void println(String s) throws IOException {
134: print(s);
135: println();
136: }
137:
138: /**
139: * Prints a boolean to the output, followed by a newline.
140: *
141: * @param b the boolean value
142: */
143: public void println(boolean b) throws IOException {
144: println(String.valueOf(b));
145: }
146:
147: /**
148: * Prints a character to the output, followed by a newline. Note,
149: * character encoding is not properly handled.
150: *
151: * @param c the character value
152: */
153: public void println(char c) throws IOException {
154: println(String.valueOf(c));
155: }
156:
157: /**
158: * Prints an integer to the output, followed by a newline.
159: *
160: * @param i the integer value
161: */
162: public void println(int i) throws IOException {
163: println(String.valueOf(i));
164: }
165:
166: /**
167: * Prints a long to the output, followed by a newline.
168: *
169: * @param l the long value
170: */
171: public void println(long l) throws IOException {
172: println(String.valueOf(l));
173: }
174:
175: /**
176: * Prints a float to the output, followed by a newline.
177: *
178: * @param f the float value
179: */
180: public void println(float f) throws IOException {
181: println(String.valueOf(f));
182: }
183:
184: /**
185: * Prints a double to the output, followed by a newline.
186: *
187: * @param d the double value
188: */
189: public void println(double d) throws IOException {
190: println(String.valueOf(d));
191: }
192: }
|