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 1304052 2012-03-22 20:55:29Z ggregory $
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 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 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 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 }