TextWriter.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. //
  2. // System.IO.TextWriter
  3. //
  4. // Author: Marcin Szczepanski ([email protected])
  5. //
  6. // TODO: Implement the Thread Safe stuff
  7. namespace System.IO {
  8. public abstract class TextWriter : MarshalByRefObject, IDisposable {
  9. protected TextWriter() {
  10. coreNewLine = "\n".ToCharArray ();
  11. }
  12. protected TextWriter( IFormatProvider formatProvider ) {
  13. internalFormatProvider = formatProvider;
  14. }
  15. protected char[] coreNewLine;
  16. protected IFormatProvider internalFormatProvider;
  17. public static readonly TextWriter Null;
  18. public abstract System.Text.Encoding Encoding { get; }
  19. public virtual IFormatProvider FormatProvider {
  20. get {
  21. return internalFormatProvider;
  22. }
  23. }
  24. public virtual string NewLine {
  25. get {
  26. return new String(coreNewLine);
  27. }
  28. set {
  29. coreNewLine = value.ToCharArray();
  30. }
  31. }
  32. public virtual void Close () {
  33. Dispose (true);
  34. }
  35. protected virtual void Dispose (bool disposing) { }
  36. void System.IDisposable.Dispose () {
  37. Dispose (true);
  38. }
  39. public virtual void Flush()
  40. {
  41. // do nothing
  42. }
  43. public static TextWriter Synchronised (TextWriter writer)
  44. {
  45. // TODO: Implement.
  46. return Null;
  47. }
  48. public virtual void Write (bool value)
  49. {
  50. Write (value.ToString ());
  51. }
  52. public virtual void Write (char value)
  53. {
  54. Write (value.ToString (internalFormatProvider));
  55. }
  56. public virtual void Write (char[] value)
  57. {
  58. Write (new String (value));
  59. }
  60. public virtual void Write (decimal value)
  61. {
  62. Write (value.ToString (internalFormatProvider));
  63. }
  64. public virtual void Write (double value)
  65. {
  66. Write (value.ToString (internalFormatProvider));
  67. }
  68. public virtual void Write (int value)
  69. {
  70. Write (value.ToString (internalFormatProvider));
  71. }
  72. public virtual void Write (long value)
  73. {
  74. Write (value.ToString (internalFormatProvider));
  75. }
  76. public virtual void Write (object value)
  77. {
  78. Write (value.ToString ());
  79. }
  80. public virtual void Write (float value)
  81. {
  82. Write (value.ToString (internalFormatProvider));
  83. }
  84. public virtual void Write (string value)
  85. {
  86. // do nothing
  87. }
  88. public virtual void Write (uint value)
  89. {
  90. Write (value.ToString (internalFormatProvider));
  91. }
  92. public virtual void Write (ulong value)
  93. {
  94. Write (value.ToString (internalFormatProvider));
  95. }
  96. public virtual void Write (string format, object arg0)
  97. {
  98. Write (String.Format (format, arg0));
  99. }
  100. public virtual void Write (string format, params object[] arg)
  101. {
  102. Write (String.Format (format, arg));
  103. }
  104. public virtual void Write (char[] buffer, int index, int count)
  105. {
  106. Write (new String (buffer, index, count));
  107. }
  108. public virtual void Write (string format, object arg0, object arg1)
  109. {
  110. Write (String.Format (format, arg0, arg1));
  111. }
  112. public virtual void Write (string format, object arg0, object arg1, object arg2 )
  113. {
  114. Write (String.Format (format, arg0, arg1, arg2));
  115. }
  116. public virtual void WriteLine ()
  117. {
  118. Write (NewLine);
  119. }
  120. public virtual void WriteLine (bool value)
  121. {
  122. Write (value);
  123. WriteLine();
  124. }
  125. public virtual void WriteLine (char value)
  126. {
  127. Write (value);
  128. WriteLine();
  129. }
  130. public virtual void WriteLine (char[] value)
  131. {
  132. Write (value);
  133. WriteLine();
  134. }
  135. public virtual void WriteLine (decimal value)
  136. {
  137. Write (value);
  138. WriteLine();
  139. }
  140. public virtual void WriteLine (double value)
  141. {
  142. Write (value);
  143. WriteLine();
  144. }
  145. public virtual void WriteLine (int value)
  146. {
  147. Write (value);
  148. WriteLine();
  149. }
  150. public virtual void WriteLine (long value)
  151. {
  152. Write (value);
  153. WriteLine();
  154. }
  155. public virtual void WriteLine (object value)
  156. {
  157. Write (value);
  158. WriteLine();
  159. }
  160. public virtual void WriteLine (float value)
  161. {
  162. Write (value);
  163. WriteLine();
  164. }
  165. public virtual void WriteLine (string value)
  166. {
  167. Write (value);
  168. WriteLine();
  169. }
  170. public virtual void WriteLine (uint value)
  171. {
  172. Write (value);
  173. WriteLine();
  174. }
  175. public virtual void WriteLine (ulong value)
  176. {
  177. Write (value);
  178. WriteLine();
  179. }
  180. public virtual void WriteLine (string format, object arg0)
  181. {
  182. Write (format, arg0);
  183. WriteLine();
  184. }
  185. public virtual void WriteLine (string format, params object[] arg)
  186. {
  187. Write (format, arg);
  188. WriteLine();
  189. }
  190. public virtual void WriteLine (char[] buffer, int index, int count)
  191. {
  192. Write (buffer, index, count);
  193. WriteLine();
  194. }
  195. public virtual void WriteLine (string format, object arg0, object arg1)
  196. {
  197. Write (format, arg0, arg1);
  198. WriteLine();
  199. }
  200. public virtual void WriteLine (string format, object arg0, object arg1, object arg2)
  201. {
  202. Write (format, arg0, arg1, arg2);
  203. WriteLine();
  204. }
  205. }
  206. }