customstream.vb

来自「Code for VB.NET教程源码 很好的源码」· VB 代码 · 共 103 行

VB
103
字号

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 + =
减小字号Ctrl + -
显示快捷键?