151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/* 251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. 351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is free software; you can redistribute it and/or modify it 651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * under the terms of the GNU General Public License version 2 only, as 751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * published by the Free Software Foundation. Oracle designates this 851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * particular file as subject to the "Classpath" exception as provided 951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * by Oracle in the LICENSE file that accompanied this code. 1051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is distributed in the hope that it will be useful, but WITHOUT 1251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * version 2 for more details (a copy is included in the LICENSE file that 1551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * accompanied this code). 1651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * You should have received a copy of the GNU General Public License version 1851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2 along with this work; if not, write to the Free Software Foundation, 1951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * or visit www.oracle.com if you need additional information or have any 2351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * questions. 2451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 2551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipackage java.io; 2751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/** 3051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * A character stream that collects its output in a string buffer, which can 3151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * then be used to construct a string. 3251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> 3351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Closing a <tt>StringWriter</tt> has no effect. The methods in this class 3451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * can be called after the stream has been closed without generating an 3551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <tt>IOException</tt>. 3651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 3751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @author Mark Reinhold 3851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since JDK1.1 3951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 4051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 4151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipublic class StringWriter extends Writer { 4251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 4351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski private StringBuffer buf; 4451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 4551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 4651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Create a new string writer using the default initial string-buffer 4751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * size. 4851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 4951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringWriter() { 5051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf = new StringBuffer(); 5151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski lock = buf; 5251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 5351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 5451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 5551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Create a new string writer using the specified initial string-buffer 5651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * size. 5751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 5851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param initialSize 5951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The number of <tt>char</tt> values that will fit into this buffer 6051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * before it is automatically expanded 6151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 6251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IllegalArgumentException 6351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * If <tt>initialSize</tt> is negative 6451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 6551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringWriter(int initialSize) { 6651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski if (initialSize < 0) { 6751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski throw new IllegalArgumentException("Negative buffer size"); 6851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 6951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf = new StringBuffer(initialSize); 7051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski lock = buf; 7151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 7251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 7351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 7451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Write a single character. 7551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 7651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void write(int c) { 7751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf.append((char) c); 7851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 7951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 8051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 8151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Write a portion of an array of characters. 8251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 8351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param cbuf Array of characters 8451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param off Offset from which to start writing characters 8551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param len Number of characters to write 8651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 8751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void write(char cbuf[], int off, int len) { 8851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski if ((off < 0) || (off > cbuf.length) || (len < 0) || 8951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski ((off + len) > cbuf.length) || ((off + len) < 0)) { 9051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski throw new IndexOutOfBoundsException(); 9151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } else if (len == 0) { 9251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return; 9351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 9451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf.append(cbuf, off, len); 9551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 9651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 9751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 9851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Write a string. 9951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 10051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void write(String str) { 10151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf.append(str); 10251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 10351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 10451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 10551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Write a portion of a string. 10651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 10751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param str String to be written 10851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param off Offset from which to start writing characters 10951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param len Number of characters to write 11051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 11151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void write(String str, int off, int len) { 11251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski buf.append(str.substring(off, off + len)); 11351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 11451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 11551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 11651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Appends the specified character sequence to this writer. 11751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 11851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> An invocation of this method of the form <tt>out.append(csq)</tt> 11951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * behaves in exactly the same way as the invocation 12051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 12151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <pre> 12251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * out.write(csq.toString()) </pre> 12351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 12451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> Depending on the specification of <tt>toString</tt> for the 12551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * character sequence <tt>csq</tt>, the entire sequence may not be 12651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * appended. For instance, invoking the <tt>toString</tt> method of a 12751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * character buffer will return a subsequence whose content depends upon 12851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * the buffer's position and limit. 12951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 13051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param csq 13151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The character sequence to append. If <tt>csq</tt> is 13251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <tt>null</tt>, then the four characters <tt>"null"</tt> are 13351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * appended to this writer. 13451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 13551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return This writer 13651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 13751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.5 13851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 13951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringWriter append(CharSequence csq) { 14051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski if (csq == null) 14151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski write("null"); 14251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski else 14351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski write(csq.toString()); 14451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 14551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 14651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 14751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 14851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Appends a subsequence of the specified character sequence to this writer. 14951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 15051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> An invocation of this method of the form <tt>out.append(csq, start, 15151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * end)</tt> when <tt>csq</tt> is not <tt>null</tt>, behaves in 15251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * exactly the same way as the invocation 15351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 15451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <pre> 15551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * out.write(csq.subSequence(start, end).toString()) </pre> 15651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 15751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param csq 15851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The character sequence from which a subsequence will be 15951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * appended. If <tt>csq</tt> is <tt>null</tt>, then characters 16051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * will be appended as if <tt>csq</tt> contained the four 16151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * characters <tt>"null"</tt>. 16251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 16351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param start 16451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The index of the first character in the subsequence 16551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 16651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param end 16751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The index of the character following the last character in the 16851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * subsequence 16951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 17051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return This writer 17151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 17251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @throws IndexOutOfBoundsException 17351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * If <tt>start</tt> or <tt>end</tt> are negative, <tt>start</tt> 17451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * is greater than <tt>end</tt>, or <tt>end</tt> is greater than 17551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <tt>csq.length()</tt> 17651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 17751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.5 17851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 17951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringWriter append(CharSequence csq, int start, int end) { 18051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski CharSequence cs = (csq == null ? "null" : csq); 18151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski write(cs.subSequence(start, end).toString()); 18251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 18351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 18451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 18551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 18651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Appends the specified character to this writer. 18751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 18851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p> An invocation of this method of the form <tt>out.append(c)</tt> 18951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * behaves in exactly the same way as the invocation 19051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 19151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <pre> 19251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * out.write(c) </pre> 19351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 19451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param c 19551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The 16-bit character to append 19651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 19751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return This writer 19851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 19951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.5 20051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 20151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringWriter append(char c) { 20251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski write(c); 20351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return this; 20451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 20551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 20651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 20751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Return the buffer's current value as a string. 20851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 20951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public String toString() { 21051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return buf.toString(); 21151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 21251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 21351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 21451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Return the string buffer itself. 21551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 21651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return StringBuffer holding the current buffer value. 21751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 21851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public StringBuffer getBuffer() { 21951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski return buf; 22051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 22151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 22251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 22351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Flush the stream. 22451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 22551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void flush() { 22651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 22751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 22851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 22951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Closing a <tt>StringWriter</tt> has no effect. The methods in this 23051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * class can be called after the stream has been closed without generating 23151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * an <tt>IOException</tt>. 23251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 23351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski public void close() throws IOException { 23451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski } 23551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 23651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski} 237