在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
FielStream類維護內部文件指針,該指針指向文件中進行下一次讀寫操作的位置。 FileStream只能處理原始字節(raw byte),處理原去吧字節的功能使用FileStream類可以用於處理任何數據文件。 通過讀取字節數據,FileStream對像可以用於讀取圖像和聲音。代價是FileStream類不能將數據直接讀入字符串 此指針可以修改用Seek方法,它有兩個參數: 第一個參數:規定文件指針以字節為參數的移動距離 第二個參數:規定開始計算的起始位置
byte[] byDataValue = new byte[200];
char[] charDataValue = new char[200]; /// <summary> /// FilesStream讀取用法 /// </summary> private void FilesStreamReadFile() { try { FileStream fsFile = new FileStream(@"d:\log.cs", FileMode.Open); //文件指針移到文件的135個字節 fsFile.Seek(135, SeekOrigin.Begin); //將接下來的字節讀到Array中 fsFile.Read(byDataValue, 0, 200); } catch (Exception e) { throw e; } //將字節轉換成字符 Decoder dc = Encoding.UTF8.GetDecoder(); //字節數組轉換成字符數組,便於顯示 dc.GetChars(byDataValue, 0, byDataValue.Length, charDataValue, 0); }
/// <summary>
/// FilesStream寫入用法 /// </summary> private void FileStreamWriteFile() { FileStream fsFile = new FileStream(@"D:\log.txt", FileMode.Create); charDataValue="This is test string".ToCharArray(); byDataValue=new byte[charDataValue.Length]; //將字符數組轉換成字節數組 Encoder ec=Encoding.UTF8.GetEncoder(); ec.GetBytes(charDataValue,0,charDataValue.Length,byDataValue,0,true); //將指針設定起始位置 fsFile.Seek(0,SeekOrigin.Begin); //寫入文件 fsFile.Write(byDataValue,0,byDataValue.Length); } FileStream對象通常會在StreamWriter或StreamReader內使用,並使用它們的方法處理文件。
/// <summary>
/// StreamWriter寫入方法 /// </summary> private void StreamWriterMetod() { try { FileStream fsFile = new FileStream(@"d:\log.txt",FileMode.OpenOrCreate); StreamWriter swWriter = new StreamWriter(fsFile); //寫入數據 swWriter.WriteLine("Hello Wrold."); swWriter.WriteLine("It is now {0}", DateTime.Now.ToLongDateString()); swWriter.Close(); } catch (Exception e) { throw e; } }
/// <summary>
/// StreamWriter讀取方法 /// </summary> private void StreamReaderMetod() { string sLine = ""; try { FileStream fsFile = new FileStream(@"d:\log.txt", FileMode.Open); StreamReader srReader = new StreamReader(fsFile); //讀取文件(讀取大文件時,最好不要用此方法) sLine = srReader.ReadToEnd(); txbValue.Text = sLine; srReader.Close(); } catch (Exception e) { throw e; } }
/// <summary>
/// StreamWriter讀取方法2 /// </summary> private void StreamReaderMetodTwo() { try { FileStream fsFile = new FileStream(@"d:\log.txt", FileMode.Open); /* * 讀取數據最簡單的方法是Read()。此方法將流的下一個字符作為正整數值返回, * 如果達到了流的結尾處,則返回-1。 */ StreamReader srReader = new StreamReader(fsFile); int iChar; iChar = srReader.Read(); while (iChar != -1) { txbValue.Text += (Convert.ToChar(iChar)); iChar = srReader.Read(); } srReader.Close(); } catch (Exception e) { throw e; } } 注:FileMode枚舉成員值在文件存在與不存在時的情況
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论