StreamWriter 输出 ... 在 .txt 文件的末尾

Posted

技术标签:

【中文标题】StreamWriter 输出 ... 在 .txt 文件的末尾【英文标题】:StreamWriter outputs ... at end of .txt file 【发布时间】:2021-11-13 23:31:53 【问题描述】:

我正在将文本框中的一些文本写入 .txt 文件,在 40 个字符之后,它只是放了一个“...”

代码如下:

//defining the path as a string
string fileName1 = @"C:\Users\-----\AppData\Local\" + nameTextBox.Text + " FileName.txt";
        //checking if the file exists
        if (!File.Exists(fileName))
        
            
            //if file does exist, open the file and edit it
            using (StreamWriter writer = File.CreateText(fileName))
            
                //using stream writer to write the file System.IO.StreamWriter(@"C:\Users\-----\AppData\Local\" + NameTextbox.Text + "FileName.txt"); //open the file for writing.
                writer.Write(writingTextBox.Text); //write text box contents to the file. 
                writer.Close();
                writer.Dispose();
            
        
        else
        
            //if the file does not exist, create new file
            System.IO.StreamWriter writer = new System.IO.StreamWriter(@"C:\Users\-----\AppData\Local" + nameTextBox.Text + "FileName.txt");
            writer1.Write(writingTextBox); //write the textbox contents to the file.
            writer1.Close();
            writer1.Dispose();
        

请帮忙,

谢谢。

【问题讨论】:

您可能在else 分支中输入错误 - writer1.Write(writingTextBox); 应该是writer1.Write(writingTextBox.Text); 谢谢,现在可以了! 【参考方案1】:

如果您只是编写简单的文本数据并且每次都想覆盖它,那么您最好使用WriteAllText

string fileName = @"C:\Users\-----\AppData\Local\" + nameTextBox.Text + " FileName.txt";

File.WriteAllText(fileName, writingTextBox.Text));

无需检查文件是否存在,有不同的处理。

如果您想追加到文件,那么您也可以使用AppendAllText。但是你必须先检查文件是否存在。

【讨论】:

谢谢,这很有帮助!

以上是关于StreamWriter 输出 ... 在 .txt 文件的末尾的主要内容,如果未能解决你的问题,请参考以下文章

C#中StreamWriter类使用总结

StreamWriter在Ascii值128上为每个字符写入2个字符。如何只写1个字符?

是否可以在不关闭 .txt 的情况下使 StreamWriter 覆盖行?

使用 StreamWriter 将行附加到文件

StreamWriter 以 Lf 而不是 CrLf 结束行

C# 单元测试 StreamWriter 参数