source: trunk/ab5.0/ablib/src/Classes/System/IO/TextWriter.ab@ 665

Last change on this file since 665 was 665, checked in by イグトランス (egtra), 15 years ago

TextWriter同様TextReaderでバッファリングし、StreamReaderはMultiByteToWideChar固定で仮実装。これで、マルチバイトモードでもStringReaderが使えるようにした。
(#235)

File size: 2.9 KB
Line 
1'Classes/System/IO/TextWriter.ab
2
3Namespace System
4Namespace IO
5
6/*
7@brief テキスト書き込みの抽象基底クラス
8@date 2007/03/05
9@auther Egtra
10*/
11Class TextWriter
12 Implements System.IDisposable
13Public
14 Virtual Sub ~TextWriter()
15 Dispose(False)
16 End Sub
17
18' Static Null = StreamWriter.Null As StreamWriter
19
20Public
21 Sub Close()
22 Dispose(True)
23 End Sub
24
25 Sub Dispose()
26 Dispose(True)
27 End Sub
28
29 Virtual Sub Flush()
30 End Sub
31
32 'これ以外全てのWrite/WriteLineは、最終的にこのWriteを呼ぶ。
33 Sub Write(x As String)
34 buf.Append(x)
35 If buf.Length >= 4096 Then
36 Flush()
37 End If
38 End Sub
39
40 Sub Write(x As Boolean)
41 buf.Append(x)
42 End Sub
43
44 Sub Write(x As SByte)
45 buf.Append(x)
46 End Sub
47
48 Sub Write(x As Byte)
49 buf.Append(x)
50 End Sub
51
52 Sub Write(x As Word)
53 buf.Append(x)
54 End Sub
55
56 Sub Write(x As Integer)
57 buf.Append(x)
58 End Sub
59
60 Sub Write(x As DWord)
61 buf.Append(x)
62 End Sub
63
64 Sub Write(x As Long)
65 buf.Append(x)
66 End Sub
67
68 Sub Write(x As QWord)
69 buf.Append(x)
70 End Sub
71
72 Sub Write(x As Int64)
73 buf.Append(x)
74 End Sub
75
76 Sub Write(x As Single)
77 buf.Append(x)
78 End Sub
79
80 Sub Write(x As Double)
81 buf.Append(x)
82 End Sub
83
84 Sub Write(x As Object)
85 buf.Append(x)
86 End Sub
87
88 Sub WriteLine()
89 Write(Environment.NewLine)
90 End Sub
91
92 Sub WriteLine(x As String)
93 Write(x)
94 WriteLine()
95 End Sub
96
97 Sub WriteLine(x As Boolean)
98 Write(x)
99 WriteLine()
100 End Sub
101
102 Sub WriteLine(x As Byte)
103 Write(x)
104 WriteLine()
105 End Sub
106
107 Sub WriteLine(x As SByte)
108 Write(x)
109 WriteLine()
110 End Sub
111
112 Sub WriteLine(x As Word)
113 Write(x)
114 WriteLine()
115 End Sub
116
117 Sub WriteLine(x As Integer)
118 Write(x)
119 WriteLine()
120 End Sub
121
122 Sub WriteLine(x As DWord)
123 Write(x)
124 WriteLine()
125 End Sub
126
127 Sub WriteLine(x As Long)
128 Write(x)
129 WriteLine()
130 End Sub
131
132 Sub WriteLine(x As QWord)
133 Write(x)
134 WriteLine()
135 End Sub
136
137 Sub WriteLine(x As Int64)
138 Write(x)
139 WriteLine()
140 End Sub
141
142 Sub WriteLine(x As Single)
143 Write(x)
144 WriteLine()
145 End Sub
146
147 Sub WriteLine(x As Double)
148 Write(x)
149 WriteLine()
150 End Sub
151
152 Sub WriteLine(x As Object)
153 Write(x)
154 WriteLine()
155 End Sub
156
157 Static Function Synchronized(writer As TextWriter) As TextWriter
158 ' TODO: 実装。とりあえずそのまま返却
159 Return writer
160 End Function
161
162Protected
163 Sub TextWriter()
164 buf = New Text.StringBuilder
165 End Sub
166
167 Sub TextWriter(buffer As Text.StringBuilder)
168 If ActiveBasic.IsNothing(buffer) Then
169 Throw New ArgumentNullException("buffer")
170 End If
171 buf = buffer
172 End Sub
173
174 /*!
175 @brief 内部バッファを返す
176 @date 2008/12/27
177 @auther Egtra
178 @return 内部バッファ
179 */
180 Function Buffer() As Text.StringBuilder
181 Buffer = buf
182 End Function
183
184 Virtual Sub Dispose(disposing As Boolean)
185 If disposing Then
186 Flush()
187 buf = Nothing
188 End If
189 End Sub
190
191Private
192 buf As Text.StringBuilder
193End Class
194
195
196End Namespace
197End Namespace
Note: See TracBrowser for help on using the repository browser.