source: trunk/Include/Classes/System/IO/StreamWriter.ab@ 473

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

実験として書いていたControlクラスを追加(せめてコミット前に既存のContorolに混ぜようとしたがコンパイルできなかった)。
ほかForms, Drawing及びGDI+の修正。

File size: 2.1 KB
Line 
1/*
2@file Include/Classes/System/IO/StreamWriter.ab
3@brief StreamWriterの実装。
4*/
5
6Namespace System
7Namespace IO
8
9/*
10@biref ストリームへの書き込みを行うTextWriterの派生。
11@date 2008/03/09
12@auther Egtra
13*/
14Class StreamWriter
15 Inherits TextWriter
16Public
17 /*
18 @date 2008/03/09
19 @auther Egtra
20 */
21 Sub StreamWriter(path As String)
22 init(New FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
23 End Sub
24
25 /*
26 @date 2008/03/09
27 @auther Egtra
28 */
29 Sub StreamWriter(stream As Stream)
30 init(stream)
31 End Sub
32
33 Override Sub Flush()
34 Dim len = buf.Length
35 If len > 0 Then
36 s.Write(StrPtr(buf) As *Byte, 0, len)
37 buf.Length = 0
38 End If
39 End Sub
40
41 Override Sub Write(str As String)
42 buf.Append(str)
43 Dim len = buf.Length
44 If len >= 2048 Then
45 s.Write(StrPtr(buf) As *Byte, 0, len)
46 buf.Length = 0
47 End If
48 End Sub
49
50 Override Sub Write(x As Boolean)
51 buf.Append(x)
52 End Sub
53
54 Override Sub Write(x As Char)
55 buf.Append(x)
56 End Sub
57
58 Override Sub Write(x As Byte)
59 buf.Append(x)
60 End Sub
61#ifdef UNICODE
62 Override Sub Write(x As SByte)
63 buf.Append(x)
64 End Sub
65#else
66 Override Sub Write(x As Word)
67 buf.Append(x)
68 End Sub
69#endif
70 Override Sub Write(x As Integer)
71 buf.Append(x)
72 End Sub
73
74 Override Sub Write(x As DWord)
75 buf.Append(x)
76 End Sub
77
78 Override Sub Write(x As Long)
79 buf.Append(x)
80 End Sub
81
82 Override Sub Write(x As QWord)
83 buf.Append(x)
84 End Sub
85
86 Override Sub Write(x As Int64)
87 buf.Append(x)
88 End Sub
89
90 Override Sub Write(x As Single)
91 buf.Append(x)
92 End Sub
93
94 Override Sub Write(x As Double)
95 buf.Append(x)
96 End Sub
97
98 Override Sub Write(x As Object)
99 Write(x.ToString)
100 End Sub
101
102Protected
103 Override Sub Dispose(disposing As Boolean)
104 If disposing Then
105 Dim len = buf.Length
106 If len > 0 Then
107 s.Write(StrPtr(buf) As *Byte, 0, len)
108 End If
109 s.Dispose()
110 End If
111 End Sub
112
113Private
114 Sub init(stream As Stream)
115 s = stream
116 buf = New System.Text.StringBuilder(4096)
117 End Sub
118
119 buf As Text.StringBuilder
120 s As System.IO.Stream
121End Class
122
123End Namespace
124End Namespace
Note: See TracBrowser for help on using the repository browser.