资源描述:
《C#应用程序设计教程 普通高等教育十一五 国家级规划教材 教学课件 作者 耿肇英 耿燚 第6章文件和流.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章文件和流6.1用流读写文件6.2File类和FileInfo类6.3Directory类和DirectoryInfo类6.1用流读写文件C#把所有文件都看成是顺序字节流,用抽象类Stream代表一个流。Stream类有许多派生类,例如FileStream类,以字节为单位读写文件;BinaryRead类和BinaryWrite类,以基本数据类型为单位读写文件,可以从文件直接读写bool、String、int16、int等基本数据类型数据;StreamReader和StreamWriter类以字符或字符串为单位读写
2、文件。本节首先介绍这些类的用法,然后介绍数据的序列化。使用流读写文件必须引入命名空间:System.IO。6.1.1FileStream类读写字节使用FileStream类可以建立文件流对象,用来打开和关闭文件,以字节为单位读写文件。也可对与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。FileStream类对象能对输入输出进行缓冲,从而提高性能。例子,写文件,写字节数组数据到文件的程序如下,该程序将建立文件d:/g1.bin。usingSystem;usingSystem.IO;//使用文件必须引入的
3、命名空间classWriteFile{staticvoidMain(){byte[]data=newbyte[10];//建立字节数组for(inti=0;i<10;i++)//为数组赋值data[i]=(byte)i;FileStreamfs=//建立流对象newFileStream("d://g1.bin",FileMode.Create);//写data字节数组中的所有数据到文件fs.Write(data,0,10);fs.Close()}//不再使用的流对象,必须关闭。}//垃圾收集器不能自动清除流对象读一个
4、文件所有字节到数组并在屏幕显示的程序如下,请先用上例建一个文件,然后用此例读出。usingSystem;usingSystem.IO;//使用文件必须引入的命名空间classReadFile{staticvoidMain(){FileStreamfs=newFileStream("d://g1.bin",FileMode.Open);byte[]data=newbyte[fs.Length];longn=fs.Read(data,0,(int)fs.Length);//n为所读字节数fs.Close();Consol
5、e.WriteLine("文件的内容如下:");foreach(bytemindata)Console.Write("{0},",m);}}移动文件读写位置usingSystem;usingSystem.IO;//使用文件必须引入的命名空间classFileStreamProperty{staticvoidMain(){FileStreamfs=//无第3个参数newFileStream("d://g1.bin",FileMode.Open);//文件读写位置移到从文件尾部向前5个字节fs.Seek(-4,SeekO
6、rigin.End);Console.WriteLine(“读写位置:{0},能定位:{1}",fs.Position,fs.CanSeek);Console.WriteLine(“能读:{0},能写:{1}",fs.CanRead,fs.CanWrite);fs.Close();}}6.1.2BinaryReader、BinaryWriter类读写基本数据类型使用BinaryReader和BinaryWriter类可以从文件直接读写bool、String、int16、int等基本数据类型数据。写int类型数据程序如
7、下:usingSystem;usingSystem.IO;//使用文件必须引入的命名空间classWriteFile{staticvoidMain(){FileStreamfs=newFileStream("d://g1.dat",FileMode.Create);BinaryWriterw=newBinaryWriter(fs);for(inti=0;i<10;i++)w.Write(i);//写入int类型数据w.Close();}}读int类型数据程序如下,先用上例建一个文件,然后用此例读出。usingSyst
8、em;usingSystem.IO;//使用文件必须引入的命名空间classReadFile{staticvoidMain(){int[]data=newint[10];FileStreamfs=newFileStream("d://g1.dat",FileMode.Open);BinaryReaderr=newBinaryReader(fs)