浅析文本文件的基本操作

来源:互联网 发布:js寻路算法 编辑:程序博客网 时间:2024/06/06 02:48

   .Net对文件的操作是以I/O流的方式进行的,因此在介绍.NET的文件操作之前,我们先来简单地了解一下流的概念。

    流(stream)是一个字节序列。一个流代表着输入或者输出到一个数据源的数据流动,对于流的操作是按照流中字节流动的先后顺序进行的。按照数据的流动方向可以将流分为两大类:输入流和输出流。从输入设备到计算机的流一般称为输入;相反,从计算机到输出设备的流一般称为输出流。比如说,从键盘输入到内存的流就是输入流,从内存到显示器的流就是输出流。对应与我们的文件读写操作,从文件输出数据的流就是输出流,把数据写入到文件的流就是输入流。

    .Net框架主要为我们提供了一个System.IO命名空间,该命名空间基本包含了所有和I/O操作相关的类。 本文真对文本文件的读写、创建、删除、复制和移动等操作做一个简单的介绍。


一、查找某个目录下的文件信息:

    System.IO命名空间下的DirectoryInfo 类提供了处理与路径有关的方法,比如建立、复制、移动、以及删除。下面的代码查找"E:/testDir"目录下的所有文件,并输出所有文件名:

DirectoryInfo dirInfor = new DirectoryInfo(@"E:/testDir");
//取得指定目录中的文件的名称
FileInfo[] files = dirInfor.GetFiles();
//文件的数量
int filesTotal = files.Length;
Console.WriteLine("Total number of bmp files", filesTotal);
for(int i=0; i<filesTotal; i++)
{
     FileInfo file = files[i];
    //输出文件名
     Console.WriteLine("Name is : {0}", file.Name);
    //输出文件的长度
     Console.WriteLine("Length of the file is : {0}", file.Length);
}


二、文本文件的读写

    在System.IO命名空间下有许多对文件进行读写操作类,其中StreamReader类和StreamWriter类是最基本也是最常用的。当建立了StreamReader(或者StreamWriter)对象后,一个读取(或写入)文件的流也就被建立了, 在这里我们不必去关心这个流的建立过程,只要使用StreamReader(StreamWriter)的方法,通过建立起来的流来读取(或写入)文件中的数据就行了。
    通常我们是使用File类的OpenText方法来获取一个StreamReader对象,通过该对象我们可以实现对文本文件的读操作;使用File类的CreateText来获取一个StreamWriter对象,通过该对象我们可以实现对文本文件的写操作。
    得到读取流对象后,就可使用该对象的ReadLine方法对文件进行读写了,ReadLine方法是从当前流中读取一行字符并将数据作为一个字符串返回。得到写入流后,就可以使用该对象的WriteLine方法将字符串逐行写入文件。
    在对文件进行读写结束后,使用流对象的Close()方法把流关闭。
下面的代码显示了如何读取一个文本文件。

string lineText = null;
StreamReader sr = File.OpenText(@"E:/testDir/testFile.txt");
while ((lineText = sr.ReadLine()) != null)
{
     Console.WriteLine(lineText);
}
sr.Close();
 
下面的代码显示了如何把一个字符串写入到文本文件。

StreamWriter sw = File.CreateText(@"E:/testDir/newFile.txt");
sw.WriteLine("Hello, PLMM");
sw.Close();


三、文件的创建与删除

    新建一个文件可以使用File类的Create方法,也可以使用FileInfo类的Create方法。下面的代码显示了如何创建一个文本文件,然后访问其创建时间、文件的绝对路径等文件信息。

FileInfo fi = new FileInfo(@"E:/testDir/newFile.txt");
fi.Create();
Console.WriteLine("Creation Time: {0}",fi.CreationTime);
Console.WriteLine("Full Name: {0}",fi.FullName);

删除文件可以使用File类的Delete方法,也可以使用FileInfo类的Delete方法。

File.Delete(@"E:/testDir/newFile.txt");



四、文件的复制与移动

    复制文件可以使用File类的copy方法,也可以使用FileInfo类的CopyTo方法。下面的代码使用File类的copy方法来拷贝oldFile.txt文件。

string fromFileName = "E://testDir//from//oldFile.txt";
string destFileName = "E://testDir//dest//newFile.txt";
File.Copy(fromFileName,destFileName,true);

    移动文件可以使用File类的Move方法,也可以使用FileInfo类的MoveTo方法。下面的代码使用File类的Move方法把"E:/testDir/from/目录下的texFile.txt文件移动到"E:/testDir/dest目录下。

string fromFileName = "E://testDir//from//testFile.txt";
string destFileName = "E://testDir//dest//testFile.txt";
File.Move(fromFileName,destFileName);


五、  总结: 

    本文只是简要地介绍了C#文件操作的基本知识和方法,通过本文我们可以对System.IO命名空间中的诸如DirectoryInfo类、StreamReader类以及StreamWriter类、FileInfo等类有了一定得有基本了解。希望本文对.NET的初学者能有所帮助。

 

原创粉丝点击