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

如何在PowerShell中创建带指定编码的System.IO.StreamWriter实例

PowerShell 创建 UTF8 编码 StreamWriter 报错的解决办法

你遇到的这个问题其实挺常见的——PowerShell 在直接用逗号传递多个参数调用 .NET 构造函数时,经常会出现参数解析错误,它没能正确识别你要传递给 StreamWriter 构造函数的三个参数,反而把后续内容当成了 New-Object cmdlet 的其他参数,所以才会抛出「找不到对应参数数量的重载」的错误。

你想要调用的是接收「文件路径、是否追加写入、编码格式」的三参数 StreamWriter 构造函数,这里给你两种解决方法:

  • 方法一:用 -ArgumentList 明确指定构造参数
    用 New-Object 的 -ArgumentList 参数把构造函数需要的参数打包传递,PowerShell 就能正确识别了:

    $f = New-Object System.IO.StreamWriter -ArgumentList "a.txt", $false, [System.Text.Encoding]::UTF8
    
  • 方法二:使用 .NET 静态方法调用语法(推荐)
    如果你用的是 PowerShell 5.1 及以上版本,可以直接用 .NET 原生的静态构造方法,这种写法更直观,也不容易出参数解析问题:

    $f = [System.IO.StreamWriter]::new("a.txt", $false, [System.Text.Encoding]::UTF8)
    

内容的提问来源于stack exchange,提问作者Hooch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:44:58