2012年6月29日

C#文件操作-File类和FileInfo类有什么区别?

摘要: System.IO命名空间中提供的文件操作类有File和FileInfo,这两个类的功能基本相同,只是File是静态类,其中所有方法都是静态的,可以通过类名直接调用,不需要实例化。而FileInfo是普通类,只有实例化对象后才可以调用其中的方法。File类是一个静态类,它对应整个文件系统进行操作,方法均为静态文法;如果只是对文件进行少量的操作,如判断文件是否存在之类或者对很多的文件进行操作,建议使用File类,可以避免频繁创建和释放对象的系统开销。FileInfo类是一个实例类,它对应某一个文件进行操作,方法大部分为实例方法,它的操作有可能是调用的File中的对应静态方法。如果是对一个文件进行 阅读全文

posted @ 2012-06-29 10:15 流星落 阅读(628) 评论(0) 推荐(0) 编辑

C#文件操作-FileInfo类

摘要: FileInfo类是一个密封类,它可以用来创建、复制、删除、移动和打开文件的实例方法。FileInfo类包括6个属性,可以用来获取文件的名称、完整路径等,具体说明如表所示。 FileInfo类的属性表属 性说 明属 性说 明Directory获取父目录Exists指定当前文件是否存在DirectoryName获取文件的完整路径Length获取当前文件的大小(字节)IsReadOnly获取或设置当前文件是否为只读Name获取文件的名称FileInfo和DirectoryInfo类一样,也包括了FileSystemInfo类继承而来的属性,在此不做详细介绍。除了上述属性之外,FileInfo类还包 阅读全文

posted @ 2012-06-29 10:13 流星落 阅读(3495) 评论(0) 推荐(0) 编辑

C#文件操作-File类

摘要: File类的常用静态方法表方 法说 明Create()在指定路径中创建文件Delete()删除指定的文件Exists()判断指定的文件是否存在Open()打开指定路径上的文件OpenRead()打开文件以进行读取OpenWrite()打开文件以进行写入Move()将指定文件移到新位置Copy()将指定文件复制到新文件Replace()使用其他文件的内容替换指定文件的内容CreateText()创建或打开一个文件文本,并写入文本OpenText()打开文本文件以进行读取AppendText()将文本追加到现有文件AppendAllText()将指定的字符串追加到文件中,如果文件还不存在则创建该文 阅读全文

posted @ 2012-06-29 10:11 流星落 阅读(359) 评论(0) 推荐(0) 编辑

C#文件操作-文件路径

摘要: 文件操作涉及一个非常重要的概念——文件路径。文件路径是指用来标识系统中文件存放位置的字符串。如:D:\\test.txt,表示在D盘根目录下存入test.txt文件。文件路径分为绝对路径和相对路径。完整描述文件位置的路径就是绝对路径,相对于目标的位置就是相对路径。绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe实际上,严格的相对路径写法应为.\system32\cmd.exe其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情 阅读全文

posted @ 2012-06-29 10:10 流星落 阅读(600) 评论(0) 推荐(0) 编辑

C#文件处理-System.IO 命名空间常用的类

摘要: System.IO 命名空间常用的类类说明提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。FileStream公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。BinaryReader用特定的编码将基元数据类型读作二进制值。BinaryWriter以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。BufferedStream给另一流上的读写操作添加一个缓冲层。无法继承此类。Directory公开用于创建、移动和枚举通 阅读全文

posted @ 2012-06-29 10:09 流星落 阅读(953) 评论(0) 推荐(0) 编辑

C#文件处理-文件管理

摘要: 在操作系统下使用文件和文件夹,是大家都熟悉的操作,也是非常重要的操作。编写的程序,书写的文档都需要保存下来,保存的过程就是将文件写入磁盘的过程。对于已经存在磁盘上的文件,如果进行修改和查看,就必须从磁盘读取出来,进行相应的格式转换,变成可以读懂的内容,即进行读磁盘的操作。事实上我们每天都要进行读写磁盘的操作,操作系统和各种可视化应用程序,已经把读写磁盘的操作封装好,只要单击相应的按钮或者打开相应的菜单就可执行。每种编程语言都有从磁盘读数据和向磁盘写数据的技术。C#提供了System.IO的命名空间,用于处理文件/流的操作。通过运用System.IO.DirectoryInfo类和System. 阅读全文

posted @ 2012-06-29 10:08 流星落 阅读(305) 评论(0) 推荐(0) 编辑

C#泛型-使用IComparer子类的Sort排序方法

摘要: 泛型的排序有3种方法,分别是:1、List<T>.Sort(),只能在集合元素实现了IComparable泛型接口时使用2、List<T>.Sort(Comparison<T>),Comparison<T>是一个方法委托,它带有2个参数T,返回int类型,可以灵活指定如何排序,但是需要编码时手动指定如何排序;3、List<T>.Sort(IComparer<T>),使用实现了IComparer<T>接口的类给集合排序,可以灵活指定如何排序,但是需预先定义好类的排序方法这里介绍第三种方法:首先定义一个类,用作集合 阅读全文

posted @ 2012-06-29 10:06 流星落 阅读(447) 评论(0) 推荐(0) 编辑

C#泛型-使用委托的Sort排序方法

摘要: 泛型的排序有3种方法,分别是:1、List<T>.Sort(),只能在集合元素实现了IComparable泛型接口时使用2、List<T>.Sort(Comparison<T>),Comparison<T>是一个方法委托,它带有2个参数T,返回int类型,可以灵活指定如何排序,但是需要编码时手动指定如何排序;3、List<T>.Sort(IComparer<T>),使用实现了IComparer<T>接口的类给集合排序,可以灵活指定如何排序,但是需预先定义好类的排序方法这里介绍第二种方法:首先定义一个类,用作集合 阅读全文

posted @ 2012-06-29 09:59 流星落 阅读(726) 评论(0) 推荐(0) 编辑

C#泛型-无参数的Sort排序方法

摘要: 泛型的排序有3种方法,分别是:1、List<T>.Sort(),只能在集合元素实现了IComparable泛型接口时使用2、List<T>.Sort(Comparison<T>),Comparison<T>是一个方法委托,它带有2个参数T,返回int类型,可以灵活指定如何排序,但是需要编码时手动指定如果排序;3、List<T>.Sort(IComparer<T>),使用实现了IComparer<T>接口的类给集合排序,可以灵活指定如何排序,但是需预先定义好类的排序方法这里介绍第一种方法:首先定义一个类,用作集合 阅读全文

posted @ 2012-06-29 09:58 流星落 阅读(374) 评论(0) 推荐(0) 编辑

C#泛型-泛型接口IComparer<T>——比较器

摘要: IComparer<T>接口定义了为比较两个对象而实现的方法。其定义如下:public interface IComparer<T>{inr Compare(T x,T y);}类型参数“T”是要比较的对象的类型。Compare方法比较两个对象并返回一个值,指示一个对象是小于,等于还是大于另一个对象。参数x是要比较的第一个对象,y是要比较的第二个对象,均属于类型T。如果返回值大于0,则x>y。如果返回值大于0,则x<y。如果返回值大于0,则x=y。IComparer<T>泛型接口主要的作用是,作为参数传入Sort()方法,实现对象比较方式的排序。 阅读全文

posted @ 2012-06-29 09:57 流星落 阅读(2434) 评论(0) 推荐(1) 编辑

C#泛型-泛型接口IComparable<T>

摘要: 系统提供了许多泛型类和泛型接口,List<T>和Dictionary<K,V>是常用的泛型类。IComparable<T>是最常用的泛型接口。泛型接口具有一般接口的共同特点,即在接口中可以包含字段,属性,方法和索引器,但都不能实现。IComparable和IComparer接口区别如下:◆IComparable在要比较的对象的类中实现,可以比较该对象和另一个对象;◆IComparer在一个单独的类中实现,可以比较任意两个对象。IComparable接口规定了一个没有实现的方法CompareTo(Object obj),语法如下:public interfac 阅读全文

posted @ 2012-06-29 09:55 流星落 阅读(697) 评论(0) 推荐(0) 编辑

C#泛型-泛型集合Dictionary入门

摘要: 1、命名空间: System.Collections.Generic(程序集:mscorlib)2、描述: 1)、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成 2)、任何键都必须是唯一的 3)、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值 4)、Key和Value可以是任何类型(string,int,custom class 等)3、创建及初始化: Dictionary<int, string> myDictionary = newDictionary<int, string>();4、添加 阅读全文

posted @ 2012-06-29 09:53 流星落 阅读(295) 评论(0) 推荐(0) 编辑

C#泛型-泛型集合Dictionary<K,V>

摘要: 在System.Collections.Generic命名空间中,与ArrayList相对应的泛型集合是List<T>,与HashTable相对应的泛型集合是Dictionary<K,V>,其存储数据的方式与哈希表相似,通过键/值来保存元素,并具有泛型的全部特征,编译时检查类型约束,读取时无须类型转换。电话本存储的例子中,使用Dictionary<K,V>来存储电话本信息,代码如下:Dictionary<string,TelNote> ht=new Dictionary<string,TelNote>();在Dictionary< 阅读全文

posted @ 2012-06-29 09:52 流星落 阅读(284) 评论(0) 推荐(0) 编辑

C#泛型-使用泛型List<T>

摘要: 一、泛型的优点性能高。从前面的例子可以看出使用不需进行类型转换,可以避免装箱和拆箱操作,提高性能。类型安全。泛型集合对其存储对象进行了类型约束,不是定义时声明的类型,是无法存储到泛型集合中的,保证了数据类型的安全。代码重用。使用泛型类型可以最大限度地重用代码,保护类型的安全以及提高性能。使用泛型使用泛型可以定义泛型类,泛型接口,泛型方法等。.NET Framework类库在System.Collection.Generic愈命名空间中包含几个新的泛型集合类,List<T>和Dictionary<K,V>是其中非常重要的两种,泛型接口IComparable<T> 阅读全文

posted @ 2012-06-29 09:51 流星落 阅读(2329) 评论(0) 推荐(0) 编辑

C#泛型-什么是泛型

摘要: 泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。C#泛型的作用概述:C#泛型赋予了代码更强的类型安全,更好的复用,更高的效率,更清晰的约束。在一个方法中,一个变量的值是可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显的好处是--类型安全和减少装箱、拆箱。下面我们先看一个例子,说明为什么要使用泛型。using System;using System.Collections;public class Pers 阅读全文

posted @ 2012-06-29 09:50 流星落 阅读(307) 评论(0) 推荐(0) 编辑

C#数组和集合专题5(Hashtable排序和遍历)

摘要: ②.Hashtable排序Hashtable没有提供排序的方法,不能直接实现对象的排序。但ArrayList类有排序的方法,可以把所有的键对象存放到ArrayList中,排序完成后再从中取出每一个键对象并输出对应的员工对象。Hashtable中的Keys属性的作用是获取包含 Hashtable 中的键的 ICollection。ICollection 接口是 System.Collections 命名空间中类的基接口。ICollection 接口扩展 Ienumerable、IDictionary和IList 则是扩展 ICollection 的更为专用的接口。IDictionary 实现是键 阅读全文

posted @ 2012-06-29 09:49 流星落 阅读(343) 评论(0) 推荐(0) 编辑

C#数组和集合专题4(Hashtable类)

摘要: 四、Hashtable类①.Hashtable概述通过Hashtable类将数据作为一组键值对来存储,这些键值对是根据编码来组织的,可以将键作为索引器来获得对应值的对象。Hashtable对象中的键值必须是唯一的,在Hashtable中一个值只允许出现一次,如果企图往Hashtable对象里添加已经存在键值,将会抛出ArgumentException异常。Hashtable类用于处理和表现类似键值对,其中键通常可用来快速查找,同时键是区分大小写;用于存储对应于键的值。Hashtable中键值对均为object类型,所以Hashtable可以支持任何类型的键值对.using System;usi 阅读全文

posted @ 2012-06-29 09:47 流星落 阅读(237) 评论(0) 推荐(0) 编辑

C#数组和集合专题3(ArrayList类)

摘要: 三、.ArrayList类System.Collections命名空间常用类(ArrayList,HashTable)、接口(ICollection,IEnumerator,IList)和结构(DictionaryEntry)。ArrayList类和Array类的比较①. Array的容量或元素个数是固定的,而ArrayList的容量可以根据需要动态扩展。通过设置ArrayList.Capacity的值可以执行重新分配内存和复制元素等操作。②. 可以通过ArrayList提供的方法在某个时间追加、插入或移除一组元素,而在Array中一次只能对一个元素进行操作。③. Array的下标是可以设置的 阅读全文

posted @ 2012-06-29 09:46 流星落 阅读(240) 评论(0) 推荐(0) 编辑

C#数组和集合专题2(Array)

摘要: System.Array的属性和方法属性描述Length得到数组所有维元素总个数的属性实例方法描述CopyTo()将一个一维数组中所有的元素复制到另一个一维数组中GetLength()返回指定维的元素个数GetValue()通过索引返回指定元素的值SetValue()将数组中的指定元素设为指定值静态方法描述BinarySearch()使用二进制搜索方法搜索一维已排序数组中的某个值Clear()将数组中一组元素设为0或nullCopy()将数组中的一部分元素复制到另一个数组中CreateInstance()初始化Array类的实例IndexOf()返回给定值在一维数组中首次出现的位置索引Last 阅读全文

posted @ 2012-06-29 09:45 流星落 阅读(191) 评论(0) 推荐(0) 编辑

C#数组和集合专题1(Array)

摘要: 一、创建Array数组 arrC#中提供了一个名为System.Array的类,它是CLR中所有数组的基类,通过它可以对数组进行许多的操作。Array arr=Array.CreateInstance(typeof(int),8);创建了一个int长度为8的一维数组arr,其中typeof用于获取类型的System.Type对象,Type实例可以表示类、值类型、数组、接口和枚举器。使用CreateInstance()的其它重载形式可以创建多维数组。要创建一个3行4列的二维字符串数组,可以这样写Arrar myStr=Array.CreateInstance(typeof(string),3,4 阅读全文

posted @ 2012-06-29 09:44 流星落 阅读(283) 评论(0) 推荐(0) 编辑

导航