Dim objStreamReader As StreamReader
Dim strLine As String
'Pass the file path and the file name to the StreamReader constructor.
objStreamReader = New StreamReader("C:\Boot.ini")
'Read the first line of text.
strLine = objStreamReader.ReadLine
'Continue to read until you reach the end of the file.
Do While Not strLine Is Nothing
'Write the line to the Console window.
Console.WriteLine(strLine)
'Read the next line.
strLine = objStreamReader.ReadLine
Loop
'Close the file.
objStreamReader.Close()
Dim objStreamWriter As StreamWriter
'Pass the file path and the file name to the StreamWriter constructor.
objStreamWriter = New StreamWriter("C:\Testfile.txt")
'Write a line of text.
objStreamWriter.WriteLine("Hello World")
'Write a second line of text.
objStreamWriter.WriteLine("From the StreamWriter class")
'Close the file.
objStreamWriter.Close()
If an error occurs while processing the file, the current method might be exited before you have an opportunity to close the file. A Try ... Finally block can be used to avoid this problem.
Dim strLine As String
Dim sr As StreamReader = Nothing
Try
sr = New StreamReader(fileName)
strLine = sr.ReadToEnd()
Finally
sr.Close()
End Try
Visual Basic 2005 has a new Using statement that can automatically release one or more IDisposable objects. Any exception will be reported to callers. If you want to catch exceptions, you need a complete Try ... Catch ... Finally block.
Dim strLine As String
Using sr As New StreamReader(fileName)
strLine = sr.ReadToEnd
End Using
Reading a text file can also be performed more easily by means of the new File.ReadAllText static method. For binary file, File.ReadAllBytes can be used.
Log File
We have written a class to write log files easily. Its source code can be seen and downloaded VB class for log file on GitHub.
'Author: Yan Naing Aye
'WebSite: http://cool-emerald.blogspot.sg/
'Updated: 2009 June 25
'-----------------------------------------------------------------------------
Imports System.IO
Public Class ClsLog
Private mEnableLog As Boolean = False
Private mLogFileDirectory As String = ""
Private mLogFilePath As String = ""
Private mLogFileLifeSpan As Integer = 0
Private mLogFileFirstName As String = "AppName"
Public Sub New()
mEnableLog = False
mLogFileDirectory = My.Application.Info.DirectoryPath
mLogFileLifeSpan = 0
mLogFileFirstName = My.Application.Info.AssemblyName
End Sub
Public Property LogFileLifeSpan() As Integer
Get
Return mLogFileLifeSpan
End Get
Set(ByVal value As Integer)
mLogFileLifeSpan = IIf(value >= 0, value, 0)
End Set
End Property
Public Property LogFileFirstName() As String
Get
Return mLogFileFirstName
End Get
Set(ByVal value As String)
mLogFileFirstName = value
End Set
End Property
Public Property LogEnable() As Boolean
Get
Return mEnableLog
End Get
Set(ByVal value As Boolean)
If value = True Then
If Directory.Exists(Me.LogFileDirectory) Then
mEnableLog = value
Else
mEnableLog = False
Throw New Exception("Invalid file directory.")
End If
Else
mEnableLog = value
End If
End Set
End Property
Public Property LogFileDirectory() As String
Get
Return mLogFileDirectory
End Get
Set(ByVal value As String)
value = Trim(value)
If Directory.Exists(value) Then
Dim i As Integer = value.Length - 1
If (((value(i)) = "\") OrElse ((value(i)) = "/")) Then
value = value.Substring(0, i)
End If
mLogFileDirectory = value
Else
Throw New Exception("Invalid file directory.")
End If
End Set
End Property
Public ReadOnly Property LogFilePath() As String
Get
Return mLogFileDirectory & "\" & mLogFileFirstName & Format(Now, "-yyyy-MMM-dd") & ".log"
End Get
End Property
Public Sub WriteLog(ByVal LogEntry As String)
If mEnableLog = True Then
mLogFilePath = mLogFileDirectory & "\" & mLogFileFirstName & Format(Now, "-yyyy-MMM-dd") & ".log"
Dim objStreamWriter As StreamWriter = New StreamWriter(mLogFilePath, True)
Try
objStreamWriter.WriteLine(LogEntry)
Catch ex As Exception
Finally
objStreamWriter.Close()
End Try
End If
End Sub
Public Sub WriteTimeAndLog(ByVal LogEntry As String)
WriteLog(Now.ToLongTimeString & " " & LogEntry)
End Sub
Public Sub CleanupFiles()
If mLogFileLifeSpan > 0 Then 'if life span is zero, there will be no cleaning up
Try
Dim LogFiles() As String = Directory.GetFiles(mLogFileDirectory)
For Each LogFile As String In LogFiles
If (DateDiff("d", File.GetLastWriteTime(LogFile), Now) > mLogFileLifeSpan) _
AndAlso (Right(LogFile, 4) = ".log") Then
File.Delete(LogFile)
End If
Next
Catch ex As Exception
End Try
End If
End Sub
End Class