为什么使用StreamWriter在输出中没有写入行

时间:2015-04-21 06:55:03

标签: c# streamreader

我遇到了StreamWriter的问题,我找不到我做错了什么。

String line, new_line;
using (StreamReader sr = new StreamReader(txtFilePath.Text))
{
    using (StreamWriter sw = new StreamWriter(txtResultFolder.Text.ToString() + "\\" + "NEW_trimmed_file" + ".csv", true))
    {
        while ((line = sr.ReadLine()) != null)
        {
            new_line = line.TrimEnd();
            MessageBox.Show(new_line);
            sw.WriteLine(new_line);
        }
    }
}

我使用MessageBox.Show(new_line),只是为了确保我有一个StreamWriter的值来写,但在结果文件中我找不到任何东西。 作为一个附加信息,我有一个文本,每行有很多空格(很多空格),我正在制作另一个文件,其行与第一行相同,但没有空格。 任何提示为什么StreamWriter实际上没有写入目标文件?

非常感谢,

2 个答案:

答案 0 :(得分:4)

  

但是在结果文件中我找不到任何内容

如果您希望StreamWriter在处理之前立即写入缓冲区,则需要致电Flush()

string line, new_line;

using (StreamReader sr = new StreamReader(txtFilePath.Text))             
using (StreamWriter sw = new StreamWriter(txtResultFolder.Text.ToString() +
                                          "\\" + "NEW_trimmed_file" + ".csv", true))
{
   while ((line = sr.ReadLine()) != null)
   {
      new_line = line.TrimEnd();
      MessageBox.Show(new_line);
      sw.WriteLine(new_line);
   }
   sw.Flush();
}

答案 1 :(得分:0)

从文件读取和写入文件的方式要短得多。只需使用File.ReadAllLines()和File.WriteAllLines()

即可
var content = File.ReadAllLines(txtFilePath.Text)

File.WriteAllLines(txtResultFolder.Text.ToString(), content);

我对txtResultFolder的命名感到有些困惑。这条路径是文件夹吗?这个TextBox的确切内容是什么?