使用.Net
StreamWriter
写入文本文件时,为什么文本文件占用的磁盘空间少于使用PowerShell Out-File
时的空间。以下脚本使用StreamWriter
和Out-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"
答案 0 :(得分:4)
Out-File
defaults to Unicode
encoding. StreamWriter
默认为UTF8
,其中一半的空间用于常见的西方字符。
我想Out-File
的设计师在这里犯了一个错误并选择了一个无用的默认值。 UTF8就像UTF-16一样是unicode。在许多常见情况下只是更小。没有功能差异。