File IO
File Input/Output StreamWriter StreamReader Text Files Binary Files
Significant programs will require you to read/write data from data files Configuration files Data Files For complex applications you will use Databases Microsoft SQL Server/Access We will only concentrate on simple text files
Simple text files are nothing more than a series of characters Hello there. This is text in a text file This is a second line in the same text file. At the end of the file there is a character called EOF (End Of File). You can’t see it But you can test for it!!
To use a file, you must: Include a special Imports statement at the top of your program: Imports System.IO Open the file If the file doesn’t exist, you can’t open it Then you must create it Data can be written to the file (always at the end of the file!!) Data can be read from the end of the file Files can have Random Access to write/read from any point of the file – beyond the scope of this class These are called Binary files. Can’t view them in an editor!! When finished with the file, close it!!!
A Visual Basic Object that you declare (Dim) so that you can write to a file Dim filMyFile As StreamWriter To create a new text file, use File.CreateText filMyFile = File.CreateText(“myfile.txt”) To add to an existing file, use AppendText filMyFile = File.AppendText(“myfile.txt”)
Once the file is open, you write to it with the Write / WriteLine statements filMyFile.WriteLine(“This is a line of text!!”) The Write statement does NOT add a newline after the text (does not press the return key) The WriteLine statement adds a newline after the text To put a blank line in the file, just add a WRiteLine without text filMyFile.WriteLine(“”)
You must always close files when finished with it Use the Close statement filMyFile.Close() Only close files if they’re open Once you close it, you can’t close it again until it’s open
You can add text to an existing file Open it with the AppendText command Then just write to it as you would any other text file When finished, just close it as you would any other text file
Dim filTestFile As StreamWriter filTestFile = File.CreateText(“mytest.txt”) filTestFile.WriteLine(“This is the first line of text!”) filTestFile.WriteLine(“Here is the second!”) filTestFile.WriteLine(“”) filTestFile.WriteLine(“The previous line was blank!!”) filTestFile.Close() filTestFile = File.AppendText(“mytest.txt”) filTestFile.WriteLine(“”) filTestFile.WriteLine(“Oops. We forgot to add this line the first time!”) filTestFile.Close()
Object in Visual Basic used to read text files Declare the variable with a Dim statement Dim filTestFile As StreamReader To open the file, use the OpenText method: filTestFile = File.OpenText(filTestFile) To read data from the file, use the ReadLine method Dim txtALine As String txtALine = filTestFile.ReadLine() Data can ONLY be read in a forward direction
Check to see if a file exists or not (FileExists) If File.Exists(strFileName) Then ‘ Do something here End If You can line things up nicely with vbTab It is a string, which adds one tab to the text lstMyListBox.items.Add(“Name: “ & vbTab & vbTab & “Bill Clinton”) lstMyListBox.items.Add(“Name: “ & vbTab & vbTab & “George Bush”)
You can find if you’re at the end of the file with Peek Dim myFile As StreamReader Dim strMyStr As String myFile = File.OpenText(“grades.txt”) Do Until myFile.Peek = -1 strMyStr = myFile.ReadLine() lstMyListBox.Items.Add(strMyStr) Loop myFile.Close()