File和FileInfo类都是实用类,主要包含用于创建、复制、删除、移动和打开文件的方法。
由于File类的所有方法都是静态的,因此不用创建这个类的实例就可以调用这些方法。FileInfo类只包括实例方法。File类的静态方法对所有的方法都执行安全检查。如果要多次重用某个对象,可考虑改用Filelnfo的相应实例方法,因为安全检查并不总是必需的。
例如,创建一个名为F00.txt的文件并返回一个FileStream对象,可使用下面的代码。
- FileStream aStream=File.Create("F00.txt");
创建一个名为F00.txt的文件并返回一个StreamWriter对象,可使用下面的代码。
- StreamWriter sw=File.createText("F00.txt");
打开一个名为F00.txt的文件并返回一个StreamReader对象,可使用下面的代码。
- StreamReader sr=File.OpenText("F00.txt");
在下面这个读取文本的例子中,将读取整个文件,并且在读到文件结尾时给出通知。
【实例7-4】 读取文本的例子。
- using System;
- using System.IO;
- public class TextFromFile
- {
- private const string FILE_NAME="MyFile.txt";
- public static void Main(string[] args)
- {
- if(!File.Exists(FILE_NAME))
- {
- Console.WriteLine("{O} does not exist!",FILE_NAME);
- return;
- }
- StreamReader sr=File.OpenText(FILE_NAME);
- string input;
- while((input=sr.ReadLine())!=null)
- {
- Console.WriteLine(input);
- }
- Console.WriteLine("The end of the st ream has been reached.");
- sr.Close();
- }
- }
这段代码通过调用File.OpenText创建了一个StreamReader对象,这个对象指向一个名为MyFile.txt的文件。StreamReader.ReadLine将每一行作为一个字符串返回。当没有字符要读取时显示一条信息,然后关闭流。
【实例7-5】 写入文本。
创建一个新的名为MyFile.txt的文本文件,并向其中写入一个字符串、一个整数和一个浮点数,最后关闭文件。
- using System;
- using System.IO;
- public class TextTOFile
- {
- private const string FILE_NAME="MyFile.txt";
- public static void Main(string[] args)
- {
- if(File.Exists(FILE_NAME))
- {
- Console.WriteLine("{O}already exists!",FILE_NAME);
- return;
- }
- StreamWriter sw=File.CreateText(FILE_NAME);
- sw.WriteLine("This is my file.");
- sw.WriteLine("I can write ints {0} or floats {1},and so on.",1,4.2);
- sw.Close();
- }
- }