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 |
方法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); |
那么以上就是保存文本为文件的几种方法。大家都明白了吧。