File和Filelnfo类

File和FileInfo类都是实用类,主要包含用于创建、复制、删除、移动和打开文件的方法。

由于File类的所有方法都是静态的,因此不用创建这个类的实例就可以调用这些方法。FileInfo类只包括实例方法。File类的静态方法对所有的方法都执行安全检查。如果要多次重用某个对象,可考虑改用Filelnfo的相应实例方法,因为安全检查并不总是必需的。

例如,创建一个名为F00.txt的文件并返回一个FileStream对象,可使用下面的代码。

  1. FileStream aStream=File.Create("F00.txt"); 

创建一个名为F00.txt的文件并返回一个StreamWriter对象,可使用下面的代码。

  1. StreamWriter sw=File.createText("F00.txt"); 

打开一个名为F00.txt的文件并返回一个StreamReader对象,可使用下面的代码。

  1. StreamReader sr=File.OpenText("F00.txt"); 

在下面这个读取文本的例子中,将读取整个文件,并且在读到文件结尾时给出通知。

【实例7-4】  读取文本的例子。

  1. using System;  
  2. using System.IO;  
  3. public class TextFromFile   
  4. {  
  5.     private const string FILE_NAME="MyFile.txt";  
  6.     public static void Main(string[] args)  
  7.     {  
  8.         if(!File.Exists(FILE_NAME))  
  9.         {  
  10.             Console.WriteLine("{O} does not exist!",FILE_NAME);  
  11.             return;  
  12.         }  
  13.         StreamReader sr=File.OpenText(FILE_NAME);  
  14.         string input;  
  15.         while((input=sr.ReadLine())!=null)  
  16.         {  
  17.             Console.WriteLine(input);  
  18.         }  
  19.         Console.WriteLine("The end of the st ream has been reached.");  
  20.         sr.Close();  
  21.     }  

这段代码通过调用File.OpenText创建了一个StreamReader对象,这个对象指向一个名为MyFile.txt的文件。StreamReader.ReadLine将每一行作为一个字符串返回。当没有字符要读取时显示一条信息,然后关闭流。

【实例7-5】  写入文本。                                                      

创建一个新的名为MyFile.txt的文本文件,并向其中写入一个字符串、一个整数和一个浮点数,最后关闭文件。

  1. using System;  
  2. using System.IO;  
  3.  
  4. public class TextTOFile  
  5. {  
  6.     private const string FILE_NAME="MyFile.txt";  
  7.     public static void Main(string[] args)  
  8.     {  
  9.         if(File.Exists(FILE_NAME))  
  10.         {  
  11.             Console.WriteLine("{O}already exists!",FILE_NAME);  
  12.             return;  
  13.         }  
  14.         StreamWriter sw=File.CreateText(FILE_NAME);  
  15.         sw.WriteLine("This is my file.");  
  16.         sw.WriteLine("I can write ints {0} or floats {1},and so on.",1,4.2);  
  17.         sw.Close();  
  18.     }  
posted @ 2010-04-03 22:19  逆时针  阅读(486)  评论(0编辑  收藏  举报