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

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

TextWriter, StreamWriterの追加。
SPrintfの浮動小数点数変換で、NaN, Infiniteの出力に対応。
PathとDirectoryInfoのCreateDirectoryで、対象が既に存在するときには例外を投げないように修正。
SimpleTestCase内で使用する一時フォルダの場所にGetTempPathで取得する版を追加(コメントアウト)。

File size: 1.7 KB
Line 
1Namespace System
2Namespace IO
3
4
5Class StreamWriter
6 Inherits TextWriter
7Public
8 /*
9 @date 2008/02/25
10 @auther Egtra
11 */
12 Sub StreamWriter(path As String)
13 init(New FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
14 End Sub
15
16 /*
17 @date 2008/02/25
18 @auther Egtra
19 */
20 Sub StreamWriter(stream As Stream)
21 init(stream)
22 End Sub
23
24 Override Sub Write(str As String)
25 buf.Append(str)
26 Dim len = buf.Length
27 If len >= 2048 Then
28 s.Write(StrPtr(buf) As *Byte, 0, len)
29 buf.Length = 0
30 End If
31 End Sub
32
33 Override Sub Write(x As Boolean)
34 buf.Append(x)
35 End Sub
36
37 Override Sub Write(x As Char)
38 buf.Append(x)
39 End Sub
40
41 Override Sub Write(x As Byte)
42 buf.Append(x)
43 End Sub
44#ifdef UNICODE
45 Override Sub Write(x As SByte)
46 buf.Append(x)
47 End Sub
48#else
49 Override Sub Write(x As Word)
50 buf.Append(x)
51 End Sub
52#endif
53 Override Sub Write(x As Integer)
54 buf.Append(x)
55 End Sub
56
57 Override Sub Write(x As DWord)
58 buf.Append(x)
59 End Sub
60
61 Override Sub Write(x As Long)
62 buf.Append(x)
63 End Sub
64
65 Override Sub Write(x As QWord)
66 buf.Append(x)
67 End Sub
68
69 Override Sub Write(x As Int64)
70 buf.Append(x)
71 End Sub
72
73 Override Sub Write(x As Single)
74 buf.Append(x)
75 End Sub
76
77 Override Sub Write(x As Double)
78 buf.Append(x)
79 End Sub
80
81 Override Sub Write(x As Object)
82 Write(x.ToString)
83 End Sub
84
85Protected
86 Override Sub Dispose(disposing As Boolean)
87 If disposing Then
88 s.Dispose()
89 End If
90 End Sub
91
92Private
93 Sub init(stream As Stream)
94 s = stream
95 buf = New System.Text.StringBuilder(4096)
96 End Sub
97
98 buf As Text.StringBuilder
99 s As System.IO.Stream
100End Class
101
102
103End Namespace
104End Namespace
Note: See TracBrowser for help on using the repository browser.