VB.NET / C# 将文本或 Textbox 文字写入TXT文档

VB.NET / C# 将字符串文本或者 TextBox 中的文本写入 TXT 文件。

VB代码

需要引用 system 和 system.IO

方法1: 利用 StreamWriter 写入文档,值得注意的是,要确定要保存的文件夹已经创建,不然会报错。

1
2
3
        Dim sw As StreamWriter = New StreamWriter("C:\temp\test.txt")
        sw.Write("This is Test Text")
        sw.Close()

方法2: 利用 My.Computer.FileSystem.WriteAllText 写入文档

1
        My.Computer.FileSystem.WriteAllText("C:\temp\test.txt", "This is test Text")

方法3: 利用 System.IO.File.WriteAllText 写入文档

1
        System.IO.File.WriteAllText("c:\temp\test.txt", "this is test file")

C# 代码

需要引用 system.IO

方法1:利用 StreamWriter 将文本写入 txt 文件,注意一下,如果用 WriteLine,那么就会自带换行符,如果用 Write,那么你需要自己加 \r\n 换行符。

1
2
3
4
5
            StreamWriter sw = new StreamWriter("test.txt");
            sw.WriteLine("this is the first line");
            sw.Write("This is the second line\r\n");
            sw.Write("This is the third line");
            sw.Close();

方法2:和 My.Computer.FileSystem.WriteAllText 一样,C#中利用 System.IO.File.WriteAllText 也可以达到同样的目的。注意 WriteAllText 是将任意文本,字符串写入文档。而 WriteAllLines 是将文本以数组的形式写入。

1. WriteAllText

1
System.IO.File.WriteAllText(@"c:\temp\test.txt", "this is test file");

2. WriteAllLines

1
2
string[] lines = { "First line", "Second line", "Third line" };
System.IO.File.WriteAllLines(@"c:\temp\test.txt", lines);

很多时候我们想保存文字不止一行,如果需要处理多行文字的话。比如需要重新编辑该txt文档,一般情况下,那么该txt会被重新改写,而之前的内容就会消失。如果想继续编辑之前的文档,在TXT文件尾部继续添加文本,那么还需要在函数后边加个参数。

VB 代码

方法1:

1
2
3
4
5
6
        Dim sw As StreamWriter = New StreamWriter("C:\temp\test.txt")
        sw.Write("abc" & vbCrLf)
        sw.Close()
        Dim sw2 As StreamWriter = New StreamWriter("C:\temp\test.txt", True)
        sw2.Write("456" & vbCrLf)
        sw2.Close()

方法2:

1
        My.Computer.FileSystem.WriteAllText("test.txt", "This is test Text", True)

方法3:

1
        System.IO.File.AppendAllText("c:\temp\test.txt", "this is extra test file")

C# 代码

方法1:

1
2
3
4
5
6
        StreamWriter sw = new StreamWriter(@"C:\temp\test.txt");
        sw.Write("abc\r\n");
        sw.Close();
        StreamWriter sw2 = new StreamWriter(@"C:\temp\test.txt", true);
        sw2.Write("456\r\n");
        sw2.Close();

方法2:
因为 C# 没有 My.Computer 的库,所以没法演示了。

方法3:

1
        System.IO.File.AppendAllText(@"c:\temp\test.txt", "\r\nthis is extra test file");

最后再来讨论一下 RichTextBox 的文本内容换行的的问题。如果直接用 StreamWriter 或者 My.Computer.FileSystem.WriteAllText 存储到 txt 文件的话,那么就会出现所有文本都挤到一起变成一行。那么解决这个问题的方法也很简单。需要注意换行符的问题。RichTextBox 的换行符是vblf,我们需要替换为TXT的换行符 vbcrlf,不然的话,存进 TXT 文档的就都变成一行了。

VB 代码

1
2
3
4
5
        Dim sw As StreamWriter = New StreamWriter("C:\temp\test.txt")
        Dim strTemp As String = Me.RichTextBox1.Text
        strTemp = strTemp.Replace(vbLf, vbCrLf)
        sw.Write(strTemp)
        sw.Close()

C# 代码

1
2
3
4
5
        StreamWriter sw = new StreamWriter(@"C:\temp\test.txt");
        string strTemp = richTextBox1.Text;
        strTemp = strTemp.Replace("\n", "\r\n");
        sw.Write(strTemp);
        sw.Close();

或者用 RichTextBox 的 SaveFile 功能也可以直接保存为 Txt 文件

VB代码

1
        RichTextBox1.SaveFile("test.txt", RichTextBoxStreamType.PlainText)

C# 代码

1
        richTextBox1.SaveFile("test.txt", RichTextBoxStreamType.PlainText);

那么以上就是保存文本为文件的几种方法。大家都明白了吧。