如何使用StreamWriter创建文本文件并写入内容,通过命令行参数指定文件名
C# 使用StreamWriter通过命令行指定文件名写入文件的实现方法
StreamWriter 是.NET 生态下用于文本写入的内置类,以下是完整实现逻辑:
1. 核心逻辑说明
程序入口Main方法的args参数会接收传入的所有命令行参数,我们取第一个参数作为写入的目标文件名,配合using语句使用StreamWriter可以自动完成资源释放,不需要手动调用关闭/销毁方法。
2. 完整可运行代码
using System; using System.IO; namespace StreamWriterDemo { class Program { static void Main(string[] args) { // 校验是否传入了文件名参数 if (args.Length < 1) { Console.WriteLine("错误:请在运行命令后指定目标文件名,示例:dotnet run test.txt"); return; } string targetFileName = args[0]; // 创建StreamWriter实例,默认会覆盖已存在的同名文件 using (StreamWriter sw = new StreamWriter(targetFileName)) { // 写入单行内容并自动换行 sw.WriteLine("这是第一行写入的文本"); sw.WriteLine("这是第二行写入的文本"); // 写入内容不自动换行 sw.Write("这是末尾无换行的文本"); } Console.WriteLine($"内容已成功写入到文件:{targetFileName}"); } } }
3. 运行方式
- 编译后直接运行exe:
YourApp.exe 自定义文件名.txt - 用dotnet CLI直接运行源码:
dotnet run 自定义文件名.txt
4. 常见场景调整
- 如需追加内容到已有文件不覆盖,修改StreamWriter构造方法为:
new StreamWriter(targetFileName, append: true) - 如需指定写入编码,可传入第三个编码参数:
new StreamWriter(targetFileName, false, System.Text.Encoding.UTF8) - 如需写入到指定目录,建议先判断父目录是否存在,不存在则创建:
string dirPath = Path.GetDirectoryName(Path.GetFullPath(targetFileName)); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } - 相对路径默认以程序运行的工作目录为基准,也可以直接传入绝对路径作为文件名参数。
内容的提问来源于stack exchange,提问作者Sofia190
相关产品推荐
相关产品推荐

