文件流FileStream類,是用來實現對文件的讀取和寫入。FileStream是操作字節的字節數組,當提供向文件讀取和寫入字節的方法時,常用StreamReader類或StreamWrite類來完成,他們是操作字符的
FileStream類的構造有多種形式,最簡單一(yī)種:FileStream(string path,FileMode mode);
FileMode枚舉有幾種成員(yuán),用于規定如何打開(kāi)或創建文件,這些成員(yuán)可以聯合使用。
1)、Append:打開(kāi)現有文件并定位至文件結尾,如果不存在則創建新文件。
2)、Create:創建新文件,如果存在,它将被覆蓋(文件被替換)。
3)、CreateNew:創建新文件,如存在将引發異常。
4)、Open:打開(kāi)現有文件。
5)、OpenOrCreat:如文件存在,打開(kāi);如不存在,創建新文件。
6)、Truncate:打開(kāi)現有文件,文件一(yī)旦被打開(kāi)就将被清空内容。
方法:FileStream(string path,FileMode mode,FileAccess access);
在不使用FileAccess枚舉類的方法中(zhōng),默認使用的是ReadWrite。
該方法有三個枚舉值:
隻讀(Read)
讀/寫(ReadWrite)
隻寫(Write)
File類和FileInfo類提供了OpenRead()方法和OpenWrite()方法用于創建FileStream對象,OpenRead()方法用于隻讀方式訪問文件,OpenWrite()方法則允許對文件進行寫入操作。
FileStream類有三個重要方法:Seek方法、Read方法、Write方法
Seek方法用于直接在文件中(zhōng)查找具體(tǐ)位置。
具體(tǐ)代碼:
byte[] bufferByte = new byte[100];
char[] bufferChar = new char[100];
string path = @"C:\Users\Administrator\Desktop\steng.cn\5.txt";
try
{
FileStream fs = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite);
fs.Seek(0, SeekOrigin.Begin);
fs.Read(bufferByte, 0, 100);
Decoder dc = Encoding.Default.GetDecoder();
dc.GetChars(bufferByte, 0, bufferByte.Length, bufferChar, 0);
Console.WriteLine(bufferChar);
Console.WriteLine("讀取完成");
bufferChar = "鄭州道揚網絡科技有限公司是一(yī)個神奇的公司".ToCharArray();
Encoder en = Encoding.UTF8.GetEncoder();
en.GetBytes(bufferChar, 0, bufferChar.Length, bufferByte, 0, true);
fs.Seek(0, SeekOrigin.Begin);
fs.Write(bufferByte, 0, bufferByte.Length);
fs.Close();
Console.WriteLine("寫入正常");
}
catch (Exception ex)
{
Console.WriteLine("操作出錯,原因是" + ex.Message.ToString());
}
Console.ReadKey();