摘要: 正如本章中对流的描述,Stream类用于字节的输入和输出。可以通过使用Reader和Writer类向使用其他类型的流以及字符串进行输入和输出。表7-3列出了一些常用的Readar和Writer类。表7-3 常用的Reader和Writer类类描 述BinaryReader和BinaryWriter这些类型特定的编码将基本类型作为二进制对流进行读取和写入TextReader和TextWriter这些... 阅读全文
posted @ 2010-04-03 22:14 逆时针 阅读(2071) 评论(0) 推荐(0) 编辑
摘要: 流有3种基本操作:可以从流读取。读取是从流到数据结构(如字节数组)的数据传输。可以向流写入。写入是从数据结构到流的数据传输。流可以支持查找。查找是在流内对当前位置进行的查询和修改。查找功能取决于流所表示的后备存储的类型。例如,当前位置的概念并不适用于网络流,因此网络流不支持查找。基于后台数据源和存储库,不同的流可能只支持上述的某些功能,应用程序可以通过查询某个流的CanRead、CanWrite和... 阅读全文
posted @ 2010-04-03 22:13 逆时针 阅读(707) 评论(0) 推荐(0) 编辑
摘要: .NET I/O操作的最小单位是字节,这是因为进行I/O操作时许多设备面向字节。因此.NET的System.IO命名空间提供了Stream类表示字节流。前面提到,即使数据流所连接的物理设备不同,所有的数据流都以相同的方式工作。Stream类提供了标准的数据流操作,比如读取字节、写入字节操作等。Stream类是面向字节的,但是程序员通常更喜欢使用字符。在.NET中char是16位,而字节是8位。如果... 阅读全文
posted @ 2010-04-03 22:07 逆时针 阅读(963) 评论(0) 推荐(1) 编辑
摘要: .net中对于IO流的支持分为两个层次:基于字节和基于字符两种方式。基于字节的方式:基于字节的方式适用于任何场合,因为任何文件的数据都是基于字节的方式有序存放的。基于字节的方式适用于操作二进制文件,比如exe文件、视频、音频文件等等。Stream抽象类是所有基于字节方式的流的父类。Stream及其子类具有三个方面的特征:支持从流读取。可以从流中读取单个字节或者一次性读取多个字节,将读取到的多个字节... 阅读全文
posted @ 2010-04-03 19:39 逆时针 阅读(1297) 评论(1) 推荐(0) 编辑
摘要: 7-Zip 简介7-Zip 是一款号称有着现今最高压缩比的压缩软件,它不仅支持独有的 7z 文件格式,而且还支持各种其它压缩文件格式,其中包括 ZIP, RAR, CAB, GZIP, BZIP2和 TAR 等等。此软件压缩的压缩比要比普通 ZIP 文件高 30-50% ,因此,它可以把 Zip 格式的文件再压缩 2-10% 。 7-Zip 主要特征 更新了算法来加大 7z 格式 的压缩比 支持格... 阅读全文
posted @ 2010-04-03 19:25 逆时针 阅读(25964) 评论(3) 推荐(5) 编辑
摘要: I saw two posts on Enums today on Eric Lippertsand Chris Rathjen'sblog. Enumsare significantly different from the other types and people run into unusal problems while working with them. C++The CLI en... 阅读全文
posted @ 2010-04-02 10:32 逆时针 阅读(2779) 评论(0) 推荐(0) 编辑
摘要: 本文主要参考《inside C#》第15章的内容。 熟悉java的程序员都知道,在java中有一种“文档注释”。采用这种注释之后,使用相应的命令,我们就可以得到与代码相关的文档说明。如今,在.net的世界中C#也提供了相同的功能。如果结合相应的工具,它还可以为我们产生漂亮的WEB风格的文档。 文档自动化初步: 在C#中文档注释对应的符号是:///。但光使用它还是不能为我们产... 阅读全文
posted @ 2010-03-31 11:37 逆时针 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 引言 C#中有两种类型变量,一种 是值类型变量,一种是引用类型变量,对于值类型变量,深拷贝和前拷贝都是通过赋值操作符号(=)实现,其效果一致,将对象中的值类型的字段拷贝到新的对象中.这个很容易理解。 本文重点讨论引用类型变量的拷贝机制和实现。 C#中引用类型对象的copy操作有两种: 浅拷贝(影子克隆/shallow copy):只复制对象的值类型字段,对象的引用类型,仍属于原来的引用. 深拷贝(... 阅读全文
posted @ 2010-03-31 11:07 逆时针 阅读(589) 评论(1) 推荐(0) 编辑
摘要: .NET系统的默认初始化机制会将所有的对象设置为0[14]。对于值类型来讲,我们无法阻止其他程序员将其所有的成员都初始化为0[15]。因此,我们应该将0作为值类型的默认值。枚举类型就是一种典型的情况。我们创建的枚举类型决不应该将0视为无效状态。我们知道,所有的枚举类型都继承自System.ValueType。默认的枚举值从0开始,但是我们可以更改这种默认行为。public enum Planet{... 阅读全文
posted @ 2010-03-30 21:36 逆时针 阅读(239) 评论(0) 推荐(0) 编辑
摘要: IConfigLoader cfgLoader = new ConcreteConfigLoader(配置文件路径)cfgLoader.Do();ConfigData cfgData = cfgLoader.GetConfigData();SystemBuilder sysBuilder = new SystemBuilder(ConfigData cfgData);sysBuilder.Do()... 阅读全文
posted @ 2010-03-30 21:20 逆时针 阅读(160) 评论(0) 推荐(0) 编辑