    001    /*
    002     * Licensed to the Apache Software Foundation (ASF) under one or more
    003     * contributor license agreements.  See the NOTICE file distributed with
    004     * this work for additional information regarding copyright ownership.
    005     * The ASF licenses this file to You under the Apache License, Version 2.0
    006     * (the "License"); you may not use this file except in compliance with
    007     * the License.  You may obtain a copy of the License at
    008     *
    009     *      http://www.apache.org/licenses/LICENSE-2.0
    010     *
    011     * Unless required by applicable law or agreed to in writing, software
    012     * distributed under the License is distributed on an "AS IS" BASIS,
    013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014     * See the License for the specific language governing permissions and
    015     * limitations under the License.
    016     */
    017    package org.apache.commons.io.output;
    018
    019    import java.io.Writer;
    020
    021    /**
    022     * This {@link Writer} writes all data to the famous <b>/dev/null</b>.
    023     * <p>
    024     * This <code>Writer</code> has no destination (file/socket etc.) and all
    025     * characters written to it are ignored and lost.
    026     *
    027     * @version $Id: NullWriter.java 1003647 2010-10-01 20:53:59Z niallp $
    028     */
    029    public class NullWriter extends Writer {
    030
    031        /**
    032         * A singleton.
    033         */
    034        public static final NullWriter NULL_WRITER = new NullWriter();
    035
    036        /**
    037         * Constructs a new NullWriter.
    038         */
    039        public NullWriter() {
    040        }
    041
    042        /**
    043         * Does nothing - output to <code>/dev/null</code>.
    044         * @param c The character to write
    045         * @return this writer
    046         * @since Commons IO 2.0
    047         */
    048        @Override
    049        public Writer append(char c) {
    050            //to /dev/null
    051            return this;
    052        }
    053
    054        /**
    055         * Does nothing - output to <code>/dev/null</code>.
    056         * @param csq The character sequence to write
    057         * @param start The index of the first character to write
    058         * @param end  The index of the first character to write (exclusive)
    059         * @return this writer
    060         * @since Commons IO 2.0
    061         */
    062        @Override
    063        public Writer append(CharSequence csq, int start, int end) {
    064            //to /dev/null
    065            return this;
    066        }
    067
    068        /**
    069         * Does nothing - output to <code>/dev/null</code>.
    070         * @param csq The character sequence to write
    071         * @return this writer
    072         * @since Commons IO 2.0
    073         */
    074        @Override
    075        public Writer append(CharSequence csq) {
    076            //to /dev/null
    077            return this;
    078        }
    079
    080        /**
    081         * Does nothing - output to <code>/dev/null</code>.
    082         * @param idx The character to write
    083         */
    084        @Override
    085        public void write(int idx) {
    086            //to /dev/null
    087        }
    088
    089        /**
    090         * Does nothing - output to <code>/dev/null</code>.
    091         * @param chr The characters to write
    092         */
    093        @Override
    094        public void write(char[] chr) {
    095            //to /dev/null
    096        }
    097
    098        /**
    099         * Does nothing - output to <code>/dev/null</code>.
    100         * @param chr The characters to write
    101         * @param st The start offset
    102         * @param end The number of characters to write
    103         */
    104        @Override
    105        public void write(char[] chr, int st, int end) {
    106            //to /dev/null
    107        }
    108
    109        /**
    110         * Does nothing - output to <code>/dev/null</code>.
    111         * @param str The string to write
    112         */
    113        @Override
    114        public void write(String str) {
    115            //to /dev/null
    116        }
    117
    118        /**
    119         * Does nothing - output to <code>/dev/null</code>.
    120         * @param str The string to write
    121         * @param st The start offset
    122         * @param end The number of characters to write
    123         */
    124        @Override
    125        public void write(String str, int st, int end) {
    126            //to /dev/null
    127        }
    128
    129        /** @see java.io.Writer#flush() */
    130        @Override
    131        public void flush() {
    132            //to /dev/null
    133        }
    134
    135        /** @see java.io.Writer#close() */
    136        @Override
    137        public void close() {
    138            //to /dev/null
    139        }
    140
    141    }