磁盘空间StreamWriter与Out-File

时间:2013-11-23 17:18:54

标签: .net powershell text-files streamwriter diskspace

使用.Net StreamWriter写入文本文件时,为什么文本文件占用的磁盘空间少于使用PowerShell Out-File时的空间。以下脚本使用StreamWriterOut-File创建相同的文本文件。但是看看生成的两个文本文件,'StreamWriter'文本文件占用了一半的空间;为什么是这样?

$String = 1..1000

# StreamWriter
$stream5 = [System.IO.StreamWriter] "E:\\Stream.txt"
$String | %{$stream5.WriteLine($_)}
$stream5.Close()

# Out-File
$string | Out-File "E:\Out-file.txt"

1 个答案:

答案 0 :(得分:4)

Out-File defaults to Unicode encoding. StreamWriter默认为UTF8,其中一半的空间用于常见的西方字符。

我想Out-File的设计师在这里犯了一个错误并选择了一个无用的默认值。 UTF8就像UTF-16一样是unicode。在许多常见情况下只是更小。没有功能差异。