<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FPrintWriter</id>
		<title>Java/File Input Output/PrintWriter - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FPrintWriter"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/PrintWriter&amp;action=history"/>
		<updated>2026-04-21T18:45:39Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/PrintWriter&amp;diff=6137&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/PrintWriter&amp;diff=6137&amp;oldid=prev"/>
				<updated>2010-06-01T06:02:44Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:02, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/PrintWriter&amp;diff=6136&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/PrintWriter&amp;diff=6136&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A helper class for printing indented text ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 * Licensed to the Apache Software Foundation (ASF) under one or more&lt;br /&gt;
 * contributor license agreements.  See the NOTICE file distributed with&lt;br /&gt;
 * this work for additional information regarding copyright ownership.&lt;br /&gt;
 * The ASF licenses this file to You under the Apache License, Version 2.0&lt;br /&gt;
 * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with&lt;br /&gt;
 * the License.  You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *      http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
/**&lt;br /&gt;
 * A helper class for printing indented text&lt;br /&gt;
 *&lt;br /&gt;
 * @version $Revision: 1.2 $&lt;br /&gt;
 */&lt;br /&gt;
public class IndentPrinter {&lt;br /&gt;
    private int indentLevel;&lt;br /&gt;
    private String indent;&lt;br /&gt;
    private PrintWriter out;&lt;br /&gt;
    public IndentPrinter() {&lt;br /&gt;
        this(new PrintWriter(System.out), &amp;quot;  &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public IndentPrinter(PrintWriter out) {&lt;br /&gt;
        this(out, &amp;quot;  &amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public IndentPrinter(PrintWriter out, String indent) {&lt;br /&gt;
        this.out = out;&lt;br /&gt;
        this.indent = indent;&lt;br /&gt;
    }&lt;br /&gt;
    public void println(Object value) {&lt;br /&gt;
        out.print(value.toString());&lt;br /&gt;
        out.println();&lt;br /&gt;
    }&lt;br /&gt;
    public void println(String text) {&lt;br /&gt;
        out.print(text);&lt;br /&gt;
        out.println();&lt;br /&gt;
    }&lt;br /&gt;
    public void print(String text) {&lt;br /&gt;
        out.print(text);&lt;br /&gt;
    }&lt;br /&gt;
    public void printIndent() {&lt;br /&gt;
        for (int i = 0; i &amp;lt; indentLevel; i++) {&lt;br /&gt;
            out.print(indent);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void println() {&lt;br /&gt;
        out.println();&lt;br /&gt;
    }&lt;br /&gt;
    public void incrementIndent() {&lt;br /&gt;
        ++indentLevel;&lt;br /&gt;
    }&lt;br /&gt;
    public void decrementIndent() {&lt;br /&gt;
        --indentLevel;&lt;br /&gt;
    }&lt;br /&gt;
    public int getIndentLevel() {&lt;br /&gt;
        return indentLevel;&lt;br /&gt;
    }&lt;br /&gt;
    public void setIndentLevel(int indentLevel) {&lt;br /&gt;
        this.indentLevel = indentLevel;&lt;br /&gt;
    }&lt;br /&gt;
    public void flush() {&lt;br /&gt;
        out.flush();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A PrintWriter that also sends its output to a log stream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright 2005 Joe Walker&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *     http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.BufferedWriter;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import org.apache.rumons.logging.LogFactory;&lt;br /&gt;
import org.apache.rumons.logging.Log;&lt;br /&gt;
/**&lt;br /&gt;
 * A PrintWriter that also sends its output to a log stream&lt;br /&gt;
 * @author Joe Walker [joe at getahead dot ltd dot uk]&lt;br /&gt;
 */&lt;br /&gt;
public class DebuggingPrintWriter extends PrintWriter&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * Create a new PrintWriter, without automatic line flushing.&lt;br /&gt;
     * @param prefix A tag to prefix lines with for debugging purposes&lt;br /&gt;
     * @param out A character-output stream&lt;br /&gt;
     */&lt;br /&gt;
    public DebuggingPrintWriter(String prefix, Writer out)&lt;br /&gt;
    {&lt;br /&gt;
        super(out, false);&lt;br /&gt;
        this.prefix = prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Create a new PrintWriter.&lt;br /&gt;
     * @param prefix A tag to prefix lines with for debugging purposes&lt;br /&gt;
     * @param out A character-output stream&lt;br /&gt;
     * @param autoFlush A boolean; if true, the println() methods will flush the output buffer&lt;br /&gt;
     */&lt;br /&gt;
    public DebuggingPrintWriter(String prefix, Writer out, boolean autoFlush)&lt;br /&gt;
    {&lt;br /&gt;
        super(out, autoFlush);&lt;br /&gt;
        this.prefix = prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Create a new PrintWriter, without automatic line flushing, from an&lt;br /&gt;
     * existing OutputStream.  This convenience constructor creates the&lt;br /&gt;
     * necessary intermediate OutputStreamWriter, which will convert characters&lt;br /&gt;
     * into bytes using the default character encoding.&lt;br /&gt;
     * @param prefix A tag to prefix lines with for debugging purposes&lt;br /&gt;
     * @param out An output stream&lt;br /&gt;
     * @see java.io.OutputStreamWriter#OutputStreamWriter(java.io.OutputStream)&lt;br /&gt;
     */&lt;br /&gt;
    public DebuggingPrintWriter(String prefix, OutputStream out)&lt;br /&gt;
    {&lt;br /&gt;
        super(out, false);&lt;br /&gt;
        this.prefix = prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Create a new PrintWriter from an existing OutputStream.  This convenience&lt;br /&gt;
     * constructor creates the necessary intermediate OutputStreamWriter, which&lt;br /&gt;
     * will convert characters into bytes using the default character encoding.&lt;br /&gt;
     * @param prefix A tag to prefix lines with for debugging purposes&lt;br /&gt;
     * @param out An output stream&lt;br /&gt;
     * @param autoFlush A boolean; if true, the println() methods will flush the output buffer&lt;br /&gt;
     * @see java.io.OutputStreamWriter#OutputStreamWriter(java.io.OutputStream)&lt;br /&gt;
     */&lt;br /&gt;
    public DebuggingPrintWriter(String prefix, OutputStream out, boolean autoFlush)&lt;br /&gt;
    {&lt;br /&gt;
        super(new BufferedWriter(new OutputStreamWriter(out)), autoFlush);&lt;br /&gt;
        this.prefix = prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(boolean)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(boolean x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(char)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(char x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(int)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(int x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(long)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(long x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(float)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(float x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(double)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(double x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(char[])&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(char[] x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(java.lang.String)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(String x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#print(java.lang.Object)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void print(Object x)&lt;br /&gt;
    {&lt;br /&gt;
        super.print(x);&lt;br /&gt;
        buffer.append(x);&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println()&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println()&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(boolean)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(boolean x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(char)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(char x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(int)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(int x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(long)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(long x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(float)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(float x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(double)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(double x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(char[])&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(char[] x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(java.lang.String)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(String x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /* (non-Javadoc)&lt;br /&gt;
     * @see java.io.PrintWriter#println(java.lang.Object)&lt;br /&gt;
     */&lt;br /&gt;
    @Override&lt;br /&gt;
    public void println(Object x)&lt;br /&gt;
    {&lt;br /&gt;
        synchronized (lock)&lt;br /&gt;
        {&lt;br /&gt;
            printBuffer();&lt;br /&gt;
            super.println(x);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Write the characters in the print buffer out to the stream&lt;br /&gt;
     */&lt;br /&gt;
    private void printBuffer()&lt;br /&gt;
    {&lt;br /&gt;
        if (buffer.length() &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            log.debug(prefix + buffer.toString());&lt;br /&gt;
            buffer.setLength(0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * How to we prefix all the debugging lines?&lt;br /&gt;
     * @return the prefix&lt;br /&gt;
     */&lt;br /&gt;
    public String getPrefix()&lt;br /&gt;
    {&lt;br /&gt;
        return prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * How to we prefix all the debugging lines?&lt;br /&gt;
     * @param prefix the prefix to set&lt;br /&gt;
     */&lt;br /&gt;
    public void setPrefix(String prefix)&lt;br /&gt;
    {&lt;br /&gt;
        this.prefix = prefix;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * How to we prefix all the debugging lines?&lt;br /&gt;
     */&lt;br /&gt;
    private String prefix;&lt;br /&gt;
    /**&lt;br /&gt;
     * A buffer where we store stuff before a newline&lt;br /&gt;
     */&lt;br /&gt;
    protected final StringBuffer buffer = new StringBuffer();&lt;br /&gt;
    /**&lt;br /&gt;
     * The log stream&lt;br /&gt;
     */&lt;br /&gt;
    private static final Log log = LogFactory.getLog(DebuggingPrintWriter.class);&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A PrintWriter that ends lines with a carriage return-line feed (CRLF). ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * JBoss, Home of Professional Open Source&lt;br /&gt;
 * Copyright 2005, JBoss Inc., and individual contributors as indicated&lt;br /&gt;
 * by the @authors tag. See the copyright.txt in the distribution for a&lt;br /&gt;
 * full listing of individual contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * This is free software; you can redistribute it and/or modify it&lt;br /&gt;
 * under the terms of the GNU Lesser General Public License as&lt;br /&gt;
 * published by the Free Software Foundation; either version 2.1 of&lt;br /&gt;
 * the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;br /&gt;
 * Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public&lt;br /&gt;
 * License along with this software; if not, write to the Free&lt;br /&gt;
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA&lt;br /&gt;
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InterruptedIOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
/**&lt;br /&gt;
 * A &amp;lt;tt&amp;gt;PrintWriter&amp;lt;/tt&amp;gt; that ends lines with a carriage return-line feed (&amp;lt;tt&amp;gt;CRLF&amp;lt;/tt&amp;gt;).&lt;br /&gt;
 * &lt;br /&gt;
 * &amp;lt;h3&amp;gt;Concurrency&amp;lt;/h3&amp;gt;&lt;br /&gt;
 * This class is &amp;lt;b&amp;gt;as&amp;lt;/b&amp;gt; synchronized as &amp;lt;tt&amp;gt;PrintWriter&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 * &lt;br /&gt;
 * @version &amp;lt;tt&amp;gt;$Revision: 1958 $&amp;lt;/tt&amp;gt;&lt;br /&gt;
 * @author &lt;br /&gt;
 */&lt;br /&gt;
public class CRLFPrintWriter extends PrintWriter {&lt;br /&gt;
  protected boolean autoFlush = false;&lt;br /&gt;
  public CRLFPrintWriter(final Writer out) {&lt;br /&gt;
    super(out);&lt;br /&gt;
  }&lt;br /&gt;
  public CRLFPrintWriter(final Writer out, final boolean autoFlush) {&lt;br /&gt;
    super(out, autoFlush);&lt;br /&gt;
    this.autoFlush = autoFlush;&lt;br /&gt;
  }&lt;br /&gt;
  public CRLFPrintWriter(final OutputStream out) {&lt;br /&gt;
    super(out);&lt;br /&gt;
  }&lt;br /&gt;
  public CRLFPrintWriter(final OutputStream out, final boolean autoFlush) {&lt;br /&gt;
    super(out, autoFlush);&lt;br /&gt;
    this.autoFlush = autoFlush;&lt;br /&gt;
  }&lt;br /&gt;
  protected void ensureOpen() throws IOException {&lt;br /&gt;
    if (out == null)&lt;br /&gt;
      throw new IOException(&amp;quot;Stream closed&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void println() {&lt;br /&gt;
    try {&lt;br /&gt;
      synchronized (lock) {&lt;br /&gt;
        ensureOpen();&lt;br /&gt;
        out.write(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
        if (autoFlush) {&lt;br /&gt;
          out.flush();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    } catch (InterruptedIOException e) {&lt;br /&gt;
      Thread.currentThread().interrupt();&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      setError();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create PrintWriter from BufferedWriter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
import java.io.BufferedWriter;&lt;br /&gt;
import java.io.FileWriter;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    FileWriter fw = new FileWriter(args[0]);&lt;br /&gt;
    BufferedWriter bw = new BufferedWriter(fw);&lt;br /&gt;
    PrintWriter pw = new PrintWriter(bw, false);&lt;br /&gt;
&lt;br /&gt;
    pw.println(true);&lt;br /&gt;
    pw.println(&amp;quot;A&amp;quot;);&lt;br /&gt;
    pw.println(500);&lt;br /&gt;
    pw.println(40000L);&lt;br /&gt;
    pw.println(45.67f);&lt;br /&gt;
    pw.println(45.67);&lt;br /&gt;
    pw.println(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
    pw.println(new Integer(&amp;quot;99&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    pw.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create PrintWriter from System.out ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
class PrintWriterDemo {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    PrintWriter pw = new PrintWriter(System.out);&lt;br /&gt;
    // Experiment with some methods&lt;br /&gt;
    pw.println(true);&lt;br /&gt;
    pw.println(&amp;quot;A&amp;quot;);&lt;br /&gt;
    pw.println(500);&lt;br /&gt;
    pw.println(40000L);&lt;br /&gt;
    pw.println(45.67f);&lt;br /&gt;
    pw.println(45.67);&lt;br /&gt;
    pw.println(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
    pw.println(new Integer(&amp;quot;99&amp;quot;));&lt;br /&gt;
    // Close print writer&lt;br /&gt;
    pw.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create PrintWriter out of FileWriter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.FileWriter;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
public class ListOfNumbers {&lt;br /&gt;
  private Vector&amp;lt;Integer&amp;gt; victor;&lt;br /&gt;
  private static final int SIZE = 10;&lt;br /&gt;
  public ListOfNumbers() {&lt;br /&gt;
    victor = new Vector&amp;lt;Integer&amp;gt;(SIZE);&lt;br /&gt;
    for (int i = 0; i &amp;lt; SIZE; i++)&lt;br /&gt;
      victor.addElement(new Integer(i));&lt;br /&gt;
  }&lt;br /&gt;
  public void writeList() {&lt;br /&gt;
    PrintWriter out = null;&lt;br /&gt;
    try {&lt;br /&gt;
      System.out.println(&amp;quot;Entering try statement&amp;quot;);&lt;br /&gt;
      out = new PrintWriter(new FileWriter(&amp;quot;OutFile.txt&amp;quot;));&lt;br /&gt;
      for (int i = 0; i &amp;lt; SIZE; i++)&lt;br /&gt;
        out.println(&amp;quot;Value at: &amp;quot; + i + &amp;quot; = &amp;quot; + victor.elementAt(i));&lt;br /&gt;
    } catch (ArrayIndexOutOfBoundsException e) {&lt;br /&gt;
      System.err.println(&amp;quot;Caught ArrayIndexOutOfBoundsException: &amp;quot;&lt;br /&gt;
          + e.getMessage());&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
      System.err.println(&amp;quot;Caught IOException: &amp;quot; + e.getMessage());&lt;br /&gt;
    } finally {&lt;br /&gt;
      if (out != null) {&lt;br /&gt;
        System.out.println(&amp;quot;Closing PrintWriter&amp;quot;);&lt;br /&gt;
        out.close();&lt;br /&gt;
      } else {&lt;br /&gt;
        System.out.println(&amp;quot;PrintWriter not open&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write lines of text to file using a PrintWriter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileWriter;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    String filename = &amp;quot;fileName.txt&amp;quot;;&lt;br /&gt;
    String[] linesToWrite = new String[] { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot; };&lt;br /&gt;
    boolean appendToFile = true;&lt;br /&gt;
    PrintWriter pw = null;&lt;br /&gt;
    if (appendToFile) {&lt;br /&gt;
      pw = new PrintWriter(new FileWriter(filename, true));&lt;br /&gt;
    } else {&lt;br /&gt;
      pw = new PrintWriter(new FileWriter(filename));&lt;br /&gt;
      // pw = new PrintWriter(new FileWriter(filename, false));&lt;br /&gt;
    }&lt;br /&gt;
    for (int i = 0; i &amp;lt; linesToWrite.length; i++) {&lt;br /&gt;
      pw.println(linesToWrite[i]);&lt;br /&gt;
    }&lt;br /&gt;
    pw.flush();&lt;br /&gt;
    pw.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>