tango.io.UnicodeFile 翻译

tango.io.UnicodeFile (r4795)

License:

BSD style: see license.txt

Version:

Initial release: December 2005

Author:

Kris

class UnicodeFile(T) #
读和写 unicode 文件。
就我们的目的而言 ,unicode文件是一个文本材料的编码。这个模块的作用是成为外部编码和程序员定义的内部编码间的接口。这个内部编码通过模板参数 T声明,而外部编码被指定或派生。

支持三种内部编码: char, wchar, and dchar。 在这里的方法在这种类型的数组上操作。如,read()返回那种类型的一个数组,而write() append()方法期待一个所说类型的数组。

支持如下的外部编码:

Encoding.Unknown Encoding.UTF_8 Encoding.UTF_8N Encoding.UTF_16 Encoding.UTF_16BE Encoding.UTF_16LE Encoding.UTF_32 Encoding.UTF_32BE Encoding.UTF_32LE

这些可以分为隐式和显式编码。这里是隐式编码子集:

Encoding.Unknown Encoding.UTF_8 Encoding.UTF_16 Encoding.UTF_32

隐式编码可以用于“发现”未知的编码,通过检查最初的几个字节的文件内容为签字。对于所有文件这个签名是可选的,但往往这样写的内容都是自描述的。当编码是未知的,用非显式编码会导致read()方法去查找一个签名并相应的自行调节。一个ZWNBSP字符可能被误认为签名,今天的文件都假定使用单词粘合剂(WORD-JOINER)字符代替。

如下是显式编码:

Encoding.UTF_8N Encoding.UTF_16BE Encoding.UTF_16LE Encoding.UTF_32BE Encoding.UTF_32LE
这一组编码是在文件编码已知道的情况下使用的。这些应该用于写或添加,因为写内容必须用已知的格式。应该注意的是,在读操作期间,一个签名的出现和这些显式种类是冲突的。

read()方法返回当前文件内容,面write()方法设置文件内容、文件长度为提供的数组。append()方法添加内容到文件尾。当添加时注意确保文件存在和当前编码正确匹配是你的职责。

要检查文件系统、文件和目录状态和别的工具通过FilePath超类的方法。

更多信息见这些链接:

http://www.utf-8.com/ http://www.hackcraft.net/xmlUnicode/ http://www.unicode.org/faq/utf_bom.html/ http://www.azillionmonkeys.com/qed/unicode.html/ http://icu.sourceforge.net/docs/papers/forms_of_unicode/
this(char[] path, Encoding encoding) #
从提供的文件路径构建一个 Unicode文件。给定编码表示外部文件编码,是 Encoding.xx类型中的一个。
UnicodeFile opCall(char[] name, Encoding encoding) [static] #
调用方快捷创建一个 Unicode文件实例。这可以用以结构用法相同的语法,因此揭示了一个迁移路径。
char[] toString() #
返回关联的文件路径。
Encoding encoding() #
返回当前的编码。这既可以是原先指定的编码 ,也可以通过检查文件内容的 bom(字节序, Bytes Order Mark)获得的推导出的编码。后者作为 read()方法的一个部分执行。
UnicodeBom!(T) bom() #
返回关联的 bom(字节序)的实例。用这个来查找关于编码状态的更多信息。
T[] read() [final] #
返回文件内容。内容通过检查 bom签名把它剥离。如果签名出现的地方,按照编码的类型它不是(该种编码),将会抛出一个异常。相反,在当前编码预期被表示的一种的地方没有已知签名,一个异常被抛出。
void write(T[] content, bool writeBom) [final] #
设置文件内容和长度反映给定的数组。内容被相应的编码。
void append(T[] content) [final] #
添加内容到文件中,内容被相应地编码。注意确保文件存在和当前编码正确匹配是你的职责。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值