yntcsb 发表于 2013-2-7 19:14:21

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) ¶# 调用方快捷创建一个Unicode文件实例。这可以用以结构用法相同的语法,因此揭示了一个迁移路径。 char[] toString() ¶# 返回关联的文件路径。 Encoding encoding() ¶# 返回当前的编码。这既可以是原先指定的编码,也可以通过检查文件内容的bom(字节序,Bytes Order Mark)获得的推导出的编码。后者作为read()方法的一个部分执行。 UnicodeBom!(T) bom() ¶# 返回关联的bom(字节序)的实例。用这个来查找关于编码状态的更多信息。 T[] read() ¶# 返回文件内容。内容通过检查bom签名把它剥离。如果签名出现的地方,按照编码的类型它不是(该种编码),将会抛出一个异常。相反,在当前编码预期被表示的一种的地方没有已知签名,一个异常被抛出。 void write(T[] content, bool writeBom) ¶# 设置文件内容和长度反映给定的数组。内容被相应的编码。 void append(T[] content) ¶# 添加内容到文件中,内容被相应地编码。注意确保文件存在和当前编码正确匹配是你的职责。<div style="background: #eeffee;">Copyright (c) 2005 Kris Bell. All rights reserved :: Generated by dil on Sat Jul 18 06:20:29 2009. Rendered by kandil.
页: [1]
查看完整版本: tango.io.UnicodeFile 翻译