简体   繁体   中英

How can I edit a text file using C#?

Lets say i have a text file with following content:

Hello!
How are you?

I want to call the file via a simple application that produces an output file with the following contents:

buildLetter.Append("Hello!").AppendLine(); 
buildLetter.Append("How are you?").AppendLine();

As you see, every line should be put between " ".

Any help will be appreciated.

void ConvertFile(string inPath, string outPath)
{
    using (var reader = new StreamReader(inPath))
    using (var writer = new StreamWriter (outPath))
    {
        string line = reader.ReadLine();
        while (line != null)
        {
            writer.WriteLine("buildLetter.Append(\"{0}\").AppendLine();",line.Trim());
            line = reader.ReadLine ();    
        }
    }
}

You should add some I/O exception handling on your own.

If you want to append "" to each line you could try combining the ReadAllLines and WriteAllLines methods:

File.WriteAllLines(
    "output.txt",
    File
        .ReadAllLines("input.txt")
        .Select(line => string.Format("\"{0}\"", line))
        .ToArray()
);

Notice that this loads the whole file contents into memory so it wouldn't work well with very large files. In this case stream readers and writers are more adapted.

For a small text files this works for me.

private void EditFile(string path, string oldText, string newText)
        {
            string content = File.ReadAllText(path);
            content = contenido.Replace(oldText, newText);
            File.WriteAllText(path, content);
        }

Use the StreamReader class from System.IO

Refer this link for sample code

All you probably need to do is change the line

Console.WriteLine(sr.ReadLine());

to

Console.WriteLine(""""" + sr.ReadLine() + """"");  // handwritten code - not tested :-)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM