You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:15:00