📄 customstream.vb
字号:
Imports System
Imports System.IO
Namespace CustomStreams
Public Class UpperCaseStream
Inherits Stream
Dim _stream As Stream
Public Sub New (stream As Stream)
_stream = stream
End Sub
Public Overrides ReadOnly Property CanRead As Boolean
Get
Return _stream.CanRead
End get
End Property
Public Overrides ReadOnly Property CanSeek As Boolean
Get
Return _stream.CanSeek
End Get
End Property
Public Overrides ReadOnly Property CanWrite As Boolean
Get
Return _stream.CanWrite
End Get
End Property
Public Overrides ReadOnly Property Length() As Long
Get
Return _stream.Length
End Get
End Property
Public Overrides Property Position As Long
Get
Return _stream.Position
End Get
Set
_stream.Position = value
End Set
End Property
Public Overrides Sub Close()
_stream.Close()
End Sub
Public Overrides Sub Flush()
_stream.Flush()
End Sub
Public Overrides Function Seek( offset As Long, origin As System.IO.SeekOrigin) As Long
Return _stream.Seek( offset, origin )
End Function
Public Overrides Sub SetLength( length As Long)
_stream.SetLength( length )
End Sub
Public Overrides Function Read( buffer As Byte(), offset As Integer, count As Integer) As Integer
Dim bytesRead As Integer
Dim index As Integer
Console.WriteLine("Read called {0} {1}", offset, count )
' let base class do the read
bytesRead = _stream.Read( buffer, offset, count )
' if something was read
If bytesRead > 0 Then
For index = offset To offset + bytesRead - 1
If Char.IsLower(Convert.ToChar(buffer(index))) Then
buffer(index) = Char.IsLower(Convert.ToChar(buffer(index)))
End If
Next
End If
Return bytesRead
End Function
Public Overrides Sub Write( buffer As Byte(), offset As Integer, count As Integer)
Console.WriteLine("Write called {0} {1}", offset, count )
_stream.Write( buffer, offset, count )
End Sub
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -