浅析文本文件的基本操作

   .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的初学者能有所帮助。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值