Jump to content

C# Tutorial: Writing Text Files

- - - - -

  • Please log in to reply
34 replies to this topic

#1
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts

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:

using System.IO;

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!

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:

string path = @"C:\myfile.txt";

StreamWriter sw = new StreamWriter(path)

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:

string bufferOne = "This is text 1.";

string bufferTwo = "This is text 2.";

sw.Write(bufferOne);

sw.Write(bufferTwo);


This writes the following text to the text file:

Quote

This is text 1.This is text 2.

If we wanted to have the text on separate lines, we could instead use:

sw.WriteLine(bufferOne);

sw.WriteLine(bufferTwo);


This produces the following result in the text file:

Quote

This is text 1.
This is text 2.

It depends on the situation as to which method to use. However, you must use whichever one is most appropriate for the situation.

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:
sw.Close();

sw.Dispose();

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!
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#2
Guest_Jordan_*

Guest_Jordan_*
  • Guests
Nice tutorial Xav! +rep

#3
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
Thanks! I'm really starting to enjoy this tutorial business - I must post a few more...
Well, it brings in the rep, so I'm happy - the best bit is, I have 3 bars, like TcM! :D
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#4
Guest_Jordan_*

Guest_Jordan_*
  • Guests
If you post enough tutorials like this you'll soon have more than him!

#5
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
He won't really like that, will he?

Hang on a minute... GREAT!
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#6
Keuvie

Keuvie

    Newbie

  • Members
  • PipPip
  • 13 posts
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

#7
Core2quad

Core2quad

    Newbie

  • Members
  • Pip
  • 3 posts
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.

#8
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts

Keuvie said:

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?
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?

Keuvie said:

The second question. How to ADD lines to a text file?
Do you want to add text to the middle/beginning of the file or append text onto the end?

Core2quad said:

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.
You're welcome! Why not post an Introduction thread in the Introductions forum to really begin as a member of CodeCall?
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#9
Keuvie

Keuvie

    Newbie

  • Members
  • PipPip
  • 13 posts

Xav said:

...
Do you want to add text to the middle/beginning of the file or append text onto the end?

...

the first thing i want to learn is to add text at the end :P

#10
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
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.
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums

#11
Keuvie

Keuvie

    Newbie

  • Members
  • PipPip
  • 13 posts
Thanks!

#12
Xav

Xav

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 13,118 posts
You're welcome, I'm here to help. :)
Jordan said:

Good members, like yourself, stick around and post for ages to come!
Mr. Xav | Blog | Forums




2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users