2 // System.IO.TextWriter
\r
4 // Author: Marcin Szczepanski (marcins@zipworld.com.au)
\r
6 // TODO: Implement the Thread Safe stuff
\r
10 namespace System.IO {
\r
13 public abstract class TextWriter : MarshalByRefObject, IDisposable {
\r
15 protected TextWriter() {
\r
16 CoreNewLine = "\n".ToCharArray ();
\r
19 protected TextWriter( IFormatProvider formatProvider ) {
\r
20 internalFormatProvider = formatProvider;
\r
23 protected char[] CoreNewLine;
\r
25 internal IFormatProvider internalFormatProvider;
\r
27 public static readonly TextWriter Null = new NullTextWriter ();
\r
29 public abstract Encoding Encoding { get; }
\r
31 public virtual IFormatProvider FormatProvider {
\r
33 return internalFormatProvider;
\r
37 public virtual string NewLine {
\r
39 return new String(CoreNewLine);
\r
43 CoreNewLine = value.ToCharArray();
\r
47 public virtual void Close () {
\r
51 protected virtual void Dispose (bool disposing) { }
\r
53 void System.IDisposable.Dispose () {
\r
58 public virtual void Flush()
\r
64 public static TextWriter Synchronized (TextWriter writer)
\r
71 public virtual void Write (bool value)
\r
73 Write (value.ToString ());
\r
76 public virtual void Write (char value)
\r
78 Write (value.ToString (internalFormatProvider));
\r
81 public virtual void Write (char[] value)
\r
84 Write (new String (value));
\r
87 public virtual void Write (decimal value)
\r
89 Write (value.ToString (internalFormatProvider));
\r
92 public virtual void Write (double value)
\r
94 Write (value.ToString (internalFormatProvider));
\r
97 public virtual void Write (int value)
\r
99 Write (value.ToString (internalFormatProvider));
\r
102 public virtual void Write (long value)
\r
104 Write (value.ToString (internalFormatProvider));
\r
107 public virtual void Write (object value)
\r
110 Write (value.ToString ());
\r
113 public virtual void Write (float value)
\r
115 Write (value.ToString (internalFormatProvider));
\r
118 public virtual void Write (string value)
\r
123 [CLSCompliant(false)]
\r
124 public virtual void Write (uint value)
\r
126 Write (value.ToString (internalFormatProvider));
\r
129 [CLSCompliant(false)]
\r
130 public virtual void Write (ulong value)
\r
132 Write (value.ToString (internalFormatProvider));
\r
135 public virtual void Write (string format, object arg0)
\r
137 Write (String.Format (format, arg0));
\r
140 public virtual void Write (string format, params object[] arg)
\r
142 Write (String.Format (format, arg));
\r
145 public virtual void Write (char[] buffer, int index, int count)
\r
147 Write (new String (buffer, index, count));
\r
150 public virtual void Write (string format, object arg0, object arg1)
\r
152 Write (String.Format (format, arg0, arg1));
\r
155 public virtual void Write (string format, object arg0, object arg1, object arg2 )
\r
157 Write (String.Format (format, arg0, arg1, arg2));
\r
160 public virtual void WriteLine ()
\r
165 public virtual void WriteLine (bool value)
\r
171 public virtual void WriteLine (char value)
\r
177 public virtual void WriteLine (char[] value)
\r
183 public virtual void WriteLine (decimal value)
\r
189 public virtual void WriteLine (double value)
\r
195 public virtual void WriteLine (int value)
\r
201 public virtual void WriteLine (long value)
\r
207 public virtual void WriteLine (object value)
\r
213 public virtual void WriteLine (float value)
\r
219 public virtual void WriteLine (string value)
\r
225 [CLSCompliant(false)]
\r
226 public virtual void WriteLine (uint value)
\r
232 [CLSCompliant(false)]
\r
233 public virtual void WriteLine (ulong value)
\r
239 public virtual void WriteLine (string format, object arg0)
\r
241 Write (format, arg0);
\r
245 public virtual void WriteLine (string format, params object[] arg)
\r
247 Write (format, arg);
\r
251 public virtual void WriteLine (char[] buffer, int index, int count)
\r
253 Write (buffer, index, count);
\r
257 public virtual void WriteLine (string format, object arg0, object arg1)
\r
259 Write (format, arg0, arg1);
\r
263 public virtual void WriteLine (string format, object arg0, object arg1, object arg2)
\r
265 Write (format, arg0, arg1, arg2);
\r
270 // Null version of the TextWriter, for the `Null' instance variable
\r
272 sealed class NullTextWriter : TextWriter {
\r
273 public override Encoding Encoding {
\r
275 return Encoding.Default;
\r
279 public override void Write (string s)
\r