【发布时间】:2017-08-16 05:50:02
【问题描述】:
我正在尝试通过网络将一个大字符串转储到一个文本文件中,但我只能达到每秒 64kbit 左右。 阅读一些关于写入文件的不同方法并查看使用 Streamwriter 的示例,速度非常快,但这是写入本地文件。
遇到此线程,建议增加缓冲区大小。有谁知道如何在 Powershell 中做到这一点?
包括参考链接:
Writing to file using StreamWriter much slower than file copy over slow network
谢谢!
编辑
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($PathToFile, $LargeTextMass, $Utf8NoBomEncoding, 0x10000)
Cannot find an overload for "WriteAllLines" and the argument count: "4".
编辑 2:
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
$sw = new-object System.IO.StreamWriter "test2.txt", $false, $Utf8NoBomEncoding,0x10000
【问题讨论】:
-
与您链接的示例中的解释方式非常相似。您正在使用必要的构造函数参数创建流写入器,在本例中为流、编码和缓冲区大小:msdn.microsoft.com/en-US/library/72d9f8d5(v=vs.110).aspx。或字符串、布尔值、编码和缓冲区大小:msdn.microsoft.com/en-us/library/0wf7ab94(v=vs.110).aspx
-
第一次尝试效果不佳。也许我需要先创建它。
-
是的,您需要先创建带有参数的对象,例如:$sw = new-object System.IO.StreamWriter $path System.Text.Encoding.UTF8 $false 10000。您可以使用 new-object 创建带有构造函数参数的 .Net 对象。
-
好一个。请添加作为示例(但更改参数的顺序,因为顺序有点混乱),我会将其标记为正确答案。
标签: .net powershell streamwriter