Writing Text Files in C# .NET
By Xav
Hello, Xav here. There are many amazing things you can do with an application, but one of the most useful is to interact with the user's files. Most programs store data in files, and this can be used for numerous reasons.
Here we are using the .NET Framework (I use v3.5). First, add the following statement to the top of the code file, next to the other "using" statements:
The .NET Framework provides a namespace for working with the data - System.IO (short for Input/Output). Now - on to reading the most basic of files - the text file!Code:using System.IO;
Writing Data
It is easier to write data to a file. Here's what you do:
We use a StreamWriter class (in the System.IO namespace) to write the data:
The object is not static - you create a new object (which we here call "sw"), and use the constructor to choose a file. Replace the string "path" with your desired path - and don't forget to include the @ symbol, otherwise C# interprets the backslashes as escape sequences. Next, is the easy part:Code:string path = @"C:\myfile.txt"; StreamWriter sw = new StreamWriter(path)
This writes the following text to the text file:Code:string bufferOne = "This is text 1."; string bufferTwo = "This is text 2."; sw.Write(bufferOne); sw.Write(bufferTwo);
If we wanted to have the text on separate lines, we could instead use:This is text 1.This is text 2.
This produces the following result in the text file:Code:sw.WriteLine(bufferOne); sw.WriteLine(bufferTwo);
It depends on the situation as to which method to use. However, you must use whichever one is most appropriate for the situation.This is text 1.
This is text 2.
At the end, we must finish off by closing and unreferencing the StreamWriter object. If you do not call Close(), the code may not work:
And that's all there is to it! Remember that you do not have to pass a string in to the Write() or WriteLine() - the method is overloaded, so you can use many data types, including char, byte, int and even boolean. Happy writing!Code:sw.Close(); sw.Dispose();
Nice tutorial Xav! +rep
If you post enough tutorials like this you'll soon have more than him!
ok, i got 2 questions.
the first one is for vista. The program i only allowed to write to a file if i manually select "Run as administrator". How to solve this?
The decond question. How to ADD lines to a text file?
Keuvie
Xav and jordan, I am new here but wanted to learn lots new things and show lots of new things to Users here...thanks for the wonderful posts.
Hmm, I'm not sure about that one. I suppose it's some sort of safety measure, but I don't know how to correct it. Perhaps Google will have the answer?
Do you want to add text to the middle/beginning of the file or append text onto the end?
You're welcome! Why not post an Introduction thread in the Introductions forum to really begin as a member of CodeCall?
You only need to change one line:
Replace this:
[highlight=csharp]StreamWriter sw = new StreamWriter(path)[/highlight]
... with this:
[highlight=csharp]StreamWriter sw = new StreamWriter(path, True)[/highlight]
The extra parameter at the end means "do you want to append text on to the end of the file?" Specifying False, or just leaving it, overwrites the file.
There are currently 2 users browsing this thread. (0 members and 2 guests)
Bookmarks