StreamWriter 输出换行符号

本文介绍了如何在记事本中正确实现文本换行的方法。使用C#代码示例展示了两种常见方式: 和 System.Environment.NewLine,确保文本文件格式正确。

之前一直用的是“\n”,用记事本不能换行。

查了一下解决方法。

StreamWriter sw = new StreamWriter(@"d:\test.txt");
sw.Write("DATA1");
sw.Write("\r\n");	//换行
sw.Write(System.Environment.NewLine); //换行



![image-20250731191102651](C:\Users\35112\AppData\Roaming\Typora\typora-user-images\image-20250731191102651.png) 文件路径概念 路径类型 • 绝对路径:从根目录开始的完整路径,如 C:\Users\Admin\Desktop\data.txt • 相对路径:从当前工作目录开始的路径,如 ..\bin\Debug\4.文件操作.exe 路径表示方法 • @符:@"C:\Users\Admin\Desktop\data.txt" - 简化字符串,无需转义 • 双反斜杠:"C:\\Users\\Admin\\Desktop\\data.txt" - 传统转义方式 文件读写操作 StreamReader(文件读取流) ```c# StreamReader sr = new StreamReader(filePath); string content = sr.ReadToEnd(); // 读取所有内容 sr.Close(); // 必须关闭流 ``` • 用于读取文件数据 • 提供 Read() 和 ReadToEnd() 等读取方法 • 使用完毕必须调用 Close() 方法释放资源 StreamWriter(文件写入流) ```c# StreamWriter sw = new StreamWriter(filePath); sw.WriteLine("单独写一行数据"); // 写入一行并换行 sw.Write("不换行"); // 写入不换行 sw.Close(); // 必须关闭流 ``` • 用于向文件写入数据 • 提供 Write() 和 WriteLine() 等写入方法 • 使用完毕必须调用 Close() 方法释放资源 目录操作 获取目录路径 • Directory.GetCurrentDirectory():获取当前项目运行环境目录 • AppDomain.CurrentDomain.BaseDirectory:获取执行程序的基目录 • Directory.GetParent().Parent:获取项目根目录(向上两级) Directory 类常用方法 • GetCurrentDirectory():获取当前目录 • GetParent():获取上级目录 • Exists():检查目录是否存在 • CreateDirectory():创建目录 IO流基础概念 流(Stream)概念 • 数据需要转换成流才能进行读写操作 • 属于 System.IO 命名空间 • 分为输入流和输出流 资源管理重要性 • 所有流操作使用完毕后必须关闭 • 避免内存泄露和文件锁定 • 推荐使用 using 语句自动管理资源 最佳实践建议 1. 路径处理:优先使用 @ 符简化路径字符串 2. 资源释放:及时调用 Close() 或使用 using 语句 3. 异常处理:添加文件操作异常处理机制 4. 目录定位:根据需求选择合适的目录获取方法 File类基础操作 文件检测与创建 • File.Exists():检查指定路径的文件是否存在 • FileStream:文件流操作类,提供对文件的底层访问 • FileMode:文件打开模式(Create、Open、Append等) • FileAccess:文件访问权限(Read、Write、ReadWrite) 文件流操作模式 FileMode枚举值 • FileMode.Create:创建新文件,如果文件已存在则覆盖 • FileMode.Open:打开现有文件,文件必须存在 • FileMode.OpenOrCreate:打开文件(如果存在)或创建新文件 • FileMode.Append:打开现有文件并定位到文件末尾 FileAccess枚举值 • FileAccess.Read:只读访问 • FileAccess.Write:只写访问 • FileAccess.ReadWrite:读写访问 流操作对象 StreamWriter(写入流) ```c# FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("写入内容"); sw.Close(); fs.Close(); ``` • 用于向文件写入文本数据 • 提供Write()和WriteLine()方法 StreamReader(读取流) ```c# FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read); StreamReader sr = new StreamReader(fs); string content = sr.ReadToEnd(); sr.Close(); fs.Close(); ``` • 用于从文件读取文本数据 • 提供Read()和ReadToEnd()方法 资源管理重要性 正确的资源释放 • 每个流对象使用完毕后必须调用Close()方法 • 推荐使用using语句自动管理资源释放 • 避免文件锁定和内存泄露问题 目录操作 获取当前目录 • Directory.GetCurrentDirectory():获取应用程序当前工作目录 • 路径拼接时注意使用双反斜杠\\或使用@符
08-01
### 关于 C# 中使用 StreamWriter 实现换行续写的解决方案 在 C# 中,`StreamWriter` 是一个用于写入字符流的类,通常与文件操作结合使用。如果需要实现换行续写功能,可以通过以下方法完成:设置 `StreamWriter` 的构造函数参数以启用追加模式,并通过调用 `WriteLine` 方法实现自动换行[^1]。 以下是具体的代码示例: ```csharp using System; using System.IO; class Program { static void Main() { string filePath = "example.txt"; // 文件路径 // 使用 StreamWriter 打开文件并设置追加模式 using (StreamWriter streamWriter = new StreamWriter(filePath, true)) { // 写入一行内容并自动换行 streamWriter.WriteLine("这是第一行内容"); // 继续写入下一行内容 streamWriter.WriteLine("这是第二行内容"); } Console.WriteLine("写入完成!"); } } ``` #### 代码说明 - `new StreamWriter(filePath, true)`:第二个参数 `true` 表示以追加模式打开文件。如果该参数为 `false` 或省略,则会覆盖原有内容[^1]。 - `streamWriter.WriteLine("内容")`:此方法会在写入指定字符串后自动添加换行符,因此无需手动处理换行逻辑[^1]。 - 使用 `using` 语句确保 `StreamWriter` 和关联的文件流在操作完成后被正确关闭和释放资源[^1]。 #### 注意事项 - 如果文件路径不存在,`StreamWriter` 会自动创建新文件[^1]。 - 在某些旧版本的开发环境中(如非 VS2017),可能需要手动添加换行符 `\n` 或 `\r\n`,但现代版本中 `WriteLine` 已经内置了换行功能[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值