VB.Net Tutorial/Stream File/FileStream
Содержание
- 1 Convert String to ASCII byte code array and save
- 2 Convert String to Unicode byte code array and save
- 3 FileStream.Length
- 4 Read a file by using SeekOrigin
- 5 Read byte array and convert it to ASCII string
- 6 Read byte array and convert it to Unicode string
- 7 Read byte using FileStream
- 8 Read into a buffer
- 9 Save UTF8Encoding string to text file
- 10 Use FileStream to write byte array
- 11 Write Bytes using FileStream
Convert String to ASCII byte code array and save
<source lang="vbnet">Imports System.Text Imports System.IO
Public Class Tester
Public Shared Sub Main Dim strSource As String Dim bteEndode() As Byte Dim myFileStream As New FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite)
strSource = "asdf" bteEndode = Encoding.ASCII.GetBytes(strSource) myFileStream.Write(bteEndode, 0, bteEndode.Length) myFileStream.Close() End Sub
End Class</source>
Convert String to Unicode byte code array and save
<source lang="vbnet">Imports System.Text Imports System.IO
Public Class Tester
Public Shared Sub Main Dim strSource As String Dim bteEndode() As Byte Dim myFileStream As New FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite)
strSource = "asdf" bteEndode = Encoding.Unicode.GetBytes(strSource) myFileStream.Write(bteEndode, 0, bteEndode.Length) myFileStream.Close() End Sub
End Class</source>
FileStream.Length
<source lang="vbnet">Imports System.IO
Public Class Tester
Public Shared Sub Main Dim fs As System.IO.FileStream Dim r As System.IO.BinaryReader Dim buffer(100) As Char Dim mylength As Long fs = New System.IO.FileStream("test.txt", IO.FileMode.OpenOrCreate) r = New System.IO.BinaryReader(fs) mylength = fs.Length If mylength > 100 Then mylength = 100 End If r.Read(buffer, 0, mylength) Console.WriteLine(buffer) r.Close() fs.Close()
End Sub
End Class</source>
Read a file by using SeekOrigin
<source lang="vbnet">Imports System.IO Imports System.Text
Public Class Tester
Public Shared Sub Main Dim myFileStream As FileStream Dim bteWrite() As Byte Dim intByte As Integer Dim lngLoop As Long Try intByte = Encoding.ASCII.GetBytes("asdf").Length ReDim bteWrite(intByte) bteWrite = Encoding.ASCII.GetBytes("asdf") myFileStream = File.OpenWrite("test.txt") Dim myOrigin As SeekOrigin Dim lngPosition As Long lngPosition = 123 myOrigin = SeekOrigin.Begin
" myOrigin = SeekOrigin.Current " myOrigin = SeekOrigin.End
myFileStream.Seek(lngPosition, myOrigin)
For lngLoop = 0 To intByte - 1 myFileStream.Seek(1, SeekOrigin.Current) myFileStream.WriteByte(bteWrite(lngLoop)) Next myFileStream.Close() Catch ex As IOException Console.WriteLine(ex.Message) End Try End Sub
End Class</source>
Read byte array and convert it to ASCII string
<source lang="vbnet">Imports System.Text Imports System.IO
Public Class Tester
Public Shared Sub Main Dim myFileStream As New FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite) Dim bteRead() As Byte Dim strRead As String Dim lngRead As Long lngRead = myFileStream.Length ReDim bteRead(lngRead) myFileStream.Read(bteRead, 0, lngRead) strRead = Encoding.ASCII.GetString(bteRead) Console.WriteLine(strRead) myFileStream.Close() End Sub
End Class</source>
Read byte array and convert it to Unicode string
<source lang="vbnet">Imports System.Text Imports System.IO
Public Class Tester
Public Shared Sub Main Dim myFileStream As New FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite) Dim bteRead() As Byte Dim strRead As String Dim lngRead As Long lngRead = myFileStream.Length ReDim bteRead(lngRead) myFileStream.Read(bteRead, 0, lngRead) strRead = Encoding.Unicode.GetString(bteRead) Console.WriteLine(strRead) myFileStream.Close() End Sub
End Class</source>
Read byte using FileStream
<source lang="vbnet">Imports System.IO Imports System.Text
Public Class Tester
Public Shared Sub Main Dim myFileStream As FileStream Dim intByte As Integer Dim lngLoop As Long = 0 Dim bteRead() As Byte Try myFileStream = File.OpenRead("test.txt") ReDim bteRead(myFileStream.Length) Do While Not intByte = -1 intByte = myFileStream.ReadByte() If intByte <> -1 Then bteRead(lngLoop) = CByte(intByte) lngLoop += 1 Loop Console.WriteLine(Encoding.ASCII.GetString(bteRead)) myFileStream.Close() Catch ex As IOException Console.WriteLine(ex.Message) End Try End Sub
End Class</source>
Read into a buffer
<source lang="vbnet">Imports System.IO
Public Class Tester
Public Shared Sub Main Dim f As System.IO.FileStream Dim mylength As Integer Dim i As Integer Dim mybuffer(100) As Byte f = New System.IO.FileStream("test.txt", IO.FileMode.Open, IO.FileAccess.Read) f.Read(mybuffer, 0, 100) For i = 0 To 99 Console.WriteLine(Chr(mybuffer(i))) Next f.Close() End Sub
End Class</source>
Save UTF8Encoding string to text file
<source lang="vbnet">Imports System.IO Imports System.Text public class Test
public Shared Sub Main Dim file_stream As New FileStream("test.txt", FileMode.Create) Dim bytes As Byte() = New UTF8Encoding().GetBytes("Hello world!") file_stream.Write(bytes, 0, bytes.Length) file_stream.Close() End Sub
End class</source>
Use FileStream to write byte array
<source lang="vbnet">Imports System.IO
Public Class Tester
Public Shared Sub Main Dim fs As System.IO.FileStream Dim buffer As String Dim i As Integer Dim myarray(100) As Byte fs = New System.IO.FileStream("test.txt", IO.FileMode.OpenOrCreate) For i = 0 To 99 myarray(i) = i Next fs.Seek(0, System.IO.SeekOrigin.End) fs.Write(myarray, 0, 100) fs.Close() End Sub
End Class</source>
Write Bytes using FileStream
<source lang="vbnet">Imports System.IO Imports System.Text
Public Class Tester
Public Shared Sub Main Dim myFileStream As FileStream Dim bteWrite() As Byte Dim intByte As Integer Dim lngLoop As Long Try intByte = Encoding.ASCII.GetBytes("asdf").Length ReDim bteWrite(intByte) bteWrite = Encoding.ASCII.GetBytes("asdf") myFileStream = File.OpenWrite("test.txt") For lngLoop = 0 To intByte - 1 myFileStream.WriteByte(bteWrite(lngLoop)) Next myFileStream.Close() Catch ex As IOException Console.WriteLine(ex.Message) End Try End Sub
End Class</source>