source: trunk/ab5.0/ablib/src/Classes/System/IO/StreamWriter.ab@ 622

Last change on this file since 622 was 622, checked in by NoWest, 16 years ago

Consoleクラスを強化

File size: 2.2 KB
Line 
1/*
2@file Include/Classes/System/IO/StreamWriter.ab
3@brief StreamWriterの実装。
4*/
5
6Namespace System
7Namespace IO
8
9/*
10@brief ストリームへの書き込みを行う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 /*
34 @brief 基になるストリームを取得する
35 @date 2008/09/02
36 @auther NoWest
37 */
38 Function BaseStream () As Stream
39 Return s
40 End Function
41
42 Override Sub Flush()
43 Dim len = buf.Length
44 If len > 0 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(str As String)
51 buf.Append(str)
52 Dim len = buf.Length
53 If len >= 2048 Then
54 s.Write(StrPtr(buf) As *Byte, 0, len)
55 buf.Length = 0
56 End If
57 End Sub
58
59 Override Sub Write(x As Boolean)
60 buf.Append(x)
61 End Sub
62
63 Override Sub Write(x As Char)
64 buf.Append(x)
65 End Sub
66
67 Override Sub Write(x As Byte)
68 buf.Append(x)
69 End Sub
70#ifdef UNICODE
71 Override Sub Write(x As SByte)
72 buf.Append(x)
73 End Sub
74#else
75 Override Sub Write(x As Word)
76 buf.Append(x)
77 End Sub
78#endif
79 Override Sub Write(x As Integer)
80 buf.Append(x)
81 End Sub
82
83 Override Sub Write(x As DWord)
84 buf.Append(x)
85 End Sub
86
87 Override Sub Write(x As Long)
88 buf.Append(x)
89 End Sub
90
91 Override Sub Write(x As QWord)
92 buf.Append(x)
93 End Sub
94
95 Override Sub Write(x As Int64)
96 buf.Append(x)
97 End Sub
98
99 Override Sub Write(x As Single)
100 buf.Append(x)
101 End Sub
102
103 Override Sub Write(x As Double)
104 buf.Append(x)
105 End Sub
106
107 Override Sub Write(x As Object)
108 Write(x.ToString)
109 End Sub
110
111Protected
112 Override Sub Dispose(disposing As Boolean)
113 If disposing Then
114 Dim len = buf.Length
115 If len > 0 Then
116 s.Write(StrPtr(buf) As *Byte, 0, len)
117 End If
118 s.Dispose()
119 End If
120 End Sub
121
122Private
123 Sub init(stream As Stream)
124 s = stream
125 buf = New System.Text.StringBuilder(4096)
126 End Sub
127
128 buf As Text.StringBuilder
129 s As System.IO.Stream
130End Class
131
132End Namespace
133End Namespace
Note: See TracBrowser for help on using the repository browser.