Mirro A
Mirro A

Reputation: 163

c# write an arraylist to a text file

I need to write my array list into a text file and so far have come up with this code. Now im confused as to how to write the 'line' to my text file using the textwriter? One procedure loads the list out of a txt file below.

public void LoadArrayList()
{
TextReader tr;
tr = File.OpenText("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt");
string line = tr.ReadToEnd();
Console.WriteLine(line);
if (line != null)
{
    ActorArrayList.Add(line);
}
else

 tr.Close();
}

Then i have one that will populate the combo box in my form.

public void PopulateActors()
{
  cboActor.Items.Clear();
  foreach (string line in ActorArrayList)
        {
            cboActor.Items.AddRange(File.ReadAllLines("C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt")); 
        }
}

and this procedure i need it to write my whole array "ActoryArrayList" into the text file.

public void WriteArrayList()
{

}

Im sorry for being confusing originally.

Upvotes: 7

Views: 28693

Answers (5)

live-love
live-love

Reputation: 52366

WriteAllLines outputs two end of line characters (carriage return and line feed - \r\n). If you don't want two end of line characters at the end of each line (\r\n), you can output only one character (\n) by using StreamWriter.

using (StreamWriter sw = new StreamWriter(@"C:\mypath\file.txt"))
{
    foreach (string s in linesArray)
        sw.Write(s + "\n");
}

Upvotes: 0

Thilina H
Thilina H

Reputation: 5804

Try with following code

        // Example #1: Write an array of strings to a file. 
        // Create a string array that consists of three lines. 
        string[] lines = { "First line", "Second line", "Third line" };
        // WriteAllLines creates a file, writes a collection of strings to the file, 
        // and then closes the file.
        System.IO.File.WriteAllLines(@"C:\Users\Mirro\Documents\Visual Studio 2010\Projects\Assessment2\Assessment2\act\actors.txt", lines);

OUTPUT :

     //   First line 
     //   Second line 
     //   Third line 

Upvotes: 17

Farid Imranov
Farid Imranov

Reputation: 2075

The best way is @Leez's way, but You also may use TextWriter and foreach operator to make this:

        //your array
        string[] yourArray = { "fisrt", "second", "third" };
        string text = "C:\\Users\\Mirro\\Documents\\Visual Studio 2010\\Projects\\Assessment2\\Assessment2\\act\\actors.txt";
        using (TextWriter writer = File.CreateText(text))
        {

            foreach (string i in yourArray)
            {
                writer.WriteLine(i);
            }
        }

Upvotes: 3

Damith
Damith

Reputation: 63065

File.WriteAllLines(filePath, ActorArrayList.ToArray());

Upvotes: 1

dotNET
dotNET

Reputation: 35400

System.IO.File.WriteAllText("FILE_PATH", line);

BTW, where is the ArrayList in your code? Also, consider using System.IO.File.ReadAllText("FILE_PATH") for everyday file reading.

If you were to actually write an ArrayList to a disk file, that would require you to first serialize the contents of the ArrayList to maybe XML or binary etc. Then you can use the above methods to write that serialized representation to a file. Also note that serializing collections involves a concept called deep and shallow copying. This question may help you better understand the concept.

Upvotes: 1

Related Questions