【问题标题】:Disk space StreamWriter vs Out-File磁盘空间 StreamWriter 与 Out-File
【发布时间】:2013-12-08 13:06:39
【问题描述】:

使用.NetStreamWriter 写入文本文件时,为什么文本文件占用的磁盘空间比使用 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"

【问题讨论】:

    标签: .net powershell text-files streamwriter diskspace


    【解决方案1】:

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

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

    【讨论】:

    • Unicode 编码既不是错误也不是无用的。它占用更多空间,但在这个廉价存储时代,这并不是主要问题。 Microsoft 是一家全球性公司,默认使用不能很好地支持国际化的编码已不再可接受。 Powershell 已更新以反映这一点。 joelonsoftware.com/articles/Unicode.html
    • @BillHurt UTF8 是 unicode,就像 UTF-16 一样。在许多常见情况下只是更小。没有功能上的区别。乔尔也谈到了这一点。
    猜你喜欢
    • 2020-07-12
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多