标签:
一、用Filestream进行文件的操作
FileStream对象表示在磁盘或者网络路径上指向的文件的流。Filestream操作的是字节和字节数组。在用Filestream进行文件操作时要用到seek()方法,因为seek方法找到具体的文件操作位置,然后调用read或者write方法对文件进行操作。
文件创建:
FileStream aFile = new FileStream(filename,FileMode.<Member>,FileAccess.<Member>);
FileMode表示文件的打开属性:具体为Open(打开文件),OpenOrCreate(文件存在打开不存在则创建)..........
FileAccess属性:Read(打开的文件只能读)、Write(对于打开的文件只能进行写操作)、ReadWrite(对打开的文件即可以读也可以写操作)
文件的查找:
FileStream实现的方法是Seek方法,有两个参数,第一个参数:文件指针移动距离(以字节为单位)。第二个参数:开始计算的起始位置,用SeekOrigin枚举来表示 ,包含的值:Begin、Current、End。采用这种文件访问的文件可以称为随机访问,因为程序可以随时访问文件的任何位置。
例如:读文件
private void buttonAdd_Click(object sender, EventArgs e) { byte [] bData = new byte[200]; char [] cData = new char[200]; try { FileStream fs = new FileStream(fileName, FileMode.Open); fs.Seek(130, SeekOrigin.Begin);//查找要操作的文件的范围。 fs.Read(bData, 0,200);//读文件,但是读出来的是byte类型 //byte转char /* Decoder d = Encoding.UTF8.GetDecoder(); d.GetChars(bData, 0,bData.Length, cData, 0); * */ //byte转string string str = System.Text.Encoding.Default.GetString(bData); this.txtContext.Text = str.ToString(); } catch (IOException ex) { MessageBox.Show(ex.Message); } }
写文件:
string fileName = @"D:\"; byte[] byteArray; char[] charData; try { fileName += this.textBox1.Text; FileStream fs = new FileStream(fileName, FileMode.Create);//打开文件 charData = this.txtContext.Text.ToArray();//将string类型转换成char[]类型 byteArray = new byte[charData.Length]; Encoder d = Encoding.UTF8.GetEncoder();//将char[]类型转换为byte类型 d.GetBytes(charData, 0, charData.Length, byteArray, 0, true); fs.Seek(0, SeekOrigin.Begin);//从文件的首段开始操作,写入byte型数据 fs.Write(byteArray, 0, charData.Length); } catch (IOException ex) { MessageBox.Show(ex.Message); }
二、用stream进行文件的读写
Stream 操作的对象是字符数据,StreamWrite类将字符和字符串写入到文件中。
创建streamWrite对象:
FileStream fs = new FileStream("123.txt",FileMode.open);
StreamWriter sw = new StreamWriter(fs);
也可以直接从文件中创建writeStream对象:
StreamWriter sw = new StreamWrite("123.txt",true)
第二个参数Boolean 值规定是追加文件,也是创建新文件:
如果此值设置为 false,则创建一个新文件,或者截取现有文件并打开它.
如果此值设置为 true,则打开文件,保留原来的数据。如果找不到文件,则创建一个新文件。
例:写文件
static void Main(string[] args) { try { FileStream fs = new FileStream(@"D:\123.txt", FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("hello world!"); sw.WriteLine("深圳美极了!"); sw.Flush(); sw.Close(); } catch (IOException ex) { Console.WriteLine("{0}", ex.Message.ToString()); } }
读取文件:
static void Main(string[] args) { string line; try { FileStream fs = new FileStream(@"D:\123.txt",FileMode.Open); StreamReader sr = new StreamReader(fs); line = sr.ReadLine(); while (line != null) { Console.WriteLine(line.ToString()); line = sr.ReadLine(); } sr.Close(); Console.ReadKey(); } catch (IOException ex) { Console.WriteLine("{0}", ex.Message.ToString()); } }
标签:
原文地址:http://www.cnblogs.com/youthshouting/p/4388344.html