C#-文件输入输出

文件输入输出

(1)Directory(Info)和File(Info)类型

Directory和File通过静态成员实现操作,扩展了System.Object。返回强类型对象。

DirectoryInfo和FileInfo通过实例级方法实现(必须使用new关键字分配它们),从FileSystemInfo抽象类派生。返回简单的字符串值。

使用DirectoryInfo类型:操作目录和子目录成员

访问当前应用程序目录可以使用”.”符号:DirectoryInfo dir1=new DirectoryInfo(“.”);

使用DirectoryInfo类型枚举出文件

GetFiles()方法返回FileInfo类型的数组

DirectoryInfo dir1=new DirectoryInfo(@“C:\Windows”); //先生成目录

FileInfo[]images=dir1.GetFiles(“*.jpg”,SearchOption.AllDirectories);//在目录中查找

使用DirectoryInfo类型创建子目录

DirectoryInfo.CreateSubdirectory创建子目录,返回的是DirectoryInfo类型

dir1.CreateSubdirectory(“MyFolder”);

DirectoryInfodir2=dir1.CreateSubdirectory(“MyFolder2”);

使用Directory类型:返回的是字符串数据类型

string[]dirves=Directory.GetLogicalDrives();

FileInfo类

FileInfo.方法():Create(),Open(),OpenRead(),OpenWrite(),返回的是FileStream对象,在使用FileStream对象后要确保关闭句柄来释放非托管资源,由于FileStream实现了IDisposable,可以使用using来让编译器生成释放逻辑,using自动调用Dispose().

FileInfo f=new FileInfo(@”C:\Test.dat”);

using(FileStream fs=f.方法(….)){….}

FileInfo.OpenText()返回StreamReader类型的实例。

FileInfo.CreateText(), FileInfo.AppendText()返回StreamWriter对象。

FileStram:只能读取或写入一个字节或字节数组

FileStream只能处理原始字节,通过System.Text命名空间的Encoding类型实现在字符串和字节数组之间的编码/解码操作,编码完后使用FileStream.Write()方法把字节数组保存到文件内。如果要把字节读回内存,需要通过Position属性重置流内部的位置,然后调用ReadByte()方法。

using(FileStreamfStream=File.Open(@”C:\test.dat”,fileMode.Create)){

string msg=”hello”;

byte[]msgAsByteArray=Encoding.Default.GetBytes(msg);//把字符串编码成字节数组

fStream.Write(msgAsByteArray,0,msgAsByteArray.Length); //把byte[]写入文件

fStream.Position=0; //重置流内部的位置

//从文件读取字节并显示在控制台上

byte[] bytesFromFile=newbyte[msgAsByteArray.Length];

for(inti=0;i< msgAsByteArray.Length;i++)

bytesFromFile[i]=(byte)fStream.ReadByte(); //从文件读取字节,显示的是字节编码

Encoding.Default.GetString(bytesFromFile); //解码后的字符串,为hello

}

StreamWriter,StreamReader写文本文件

using (StreamWriter sw = File.CreateText("test.txt")){

sw.WriteLine("123");

sw.Write(sw.NewLine); //插入一个新行

}

读文本文件

using (StreamReader sw = File.OpenText("test.txt")){

string s=null;

s=sw.ReadLine();

}

直接创建StreamWriter/StreamReader类型

using (StreamWriter/StreamReadersw =new StreamWriter/StreamReader ("test.txt"){}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值