VB.Net Tutorial/Stream File/FileStream

Материал из VB Эксперт
Перейти к: навигация, поиск

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>