|
string textContent = fileStream.ReadToEnd();byte[] bytes = System.Text.Encoding.Default.GetBytes(textContent); 字符數(shù)據(jù)易于使用, 但是有些操作,比如隨機文件訪問(訪問文件中間某點的數(shù)據(jù)),就必須由FileStream對象執(zhí)行. 其中創(chuàng)建FileStream對象最簡單的構(gòu)造函數(shù)如下: 1 FileStream file = new FileStream(fileName,FileMode.Member);2 FileStream file = new FileStream(fileName, FileMode.Member, FileAccess.Member);而FileAccess的成員:
對文件進行不是FileAccess枚舉成員指定的操作會導(dǎo)致拋出異常。此屬性的作用是,基于用戶的身份驗證級別改變用戶對文件的訪問權(quán)限。 在FileStream構(gòu)造函數(shù)不使用FileAccess枚舉參數(shù)的版本中,使用默認值FileAccess. ReadWrite。 FileMode枚舉成員,使用每個值會發(fā)生什么,取決于指定的文件名是否表示已有的文件。
StreamWriter允許將字符和字符串寫入文件,它處理底層的轉(zhuǎn)換,向FileStream對象寫入數(shù)據(jù)。StreamReader也類似。 實例: 1 using System;2 using System.Data;3 using System.IO;4 using System.Text;5 ![]() 6 ![]() /**//// <summary>7 /// Summary description for FileReadAndWrite8 /// </summary>9 public class FileReadAndWrite10 ![]() ![]() {11 public FileReadAndWrite()12 ![]() {13 //14 // TODO: Add constructor logic here15 //16 }17 ![]() /**//// <summary>18 /// 用FileStream寫文件19 /// </summary>20 /// <param name="str"></param>21 /// <returns></returns>22 public void FileStreamWriteFile(string str)23 ![]() {24 byte[] byData;25 char[] charData;26 try27 ![]() {28 FileStream nFile = new FileStream("love.txt", FileMode.Create);29 //獲得字符數(shù)組30 charData = str.ToCharArray();31 //初始化字節(jié)數(shù)組32 byData = new byte[charData.Length];33 //將字符數(shù)組轉(zhuǎn)換為正確的字節(jié)格式34 Encoder enc = Encoding.UTF8.GetEncoder();35 enc.GetBytes(charData, 0, charData.Length,byData,0,true);36 nFile.Seek(0, SeekOrigin.Begin);37 nFile.Write(byData, 0, byData.Length);38 }39 catch (Exception ex)40 ![]() {41 throw ex;42 }43 }44 ![]() /**//// <summary>45 /// FileStream讀取文件46 /// </summary>47 /// <param name="filePath"></param>48 /// <returns></returns>49 public string FileStreamReadFile(string filePath)50 ![]() {51 byte[] data = new byte[100];52 char[] charData = new char[100];53 try54 ![]() {55 FileStream file = new FileStream(filePath, FileMode.Open);56 //文件指針指向0位置57 file.Seek(0, SeekOrigin.Begin);58 //讀入兩百個字節(jié)59 file.Read(data, 0, 200);60 //提取字節(jié)數(shù)組61 Decoder dec = Encoding.UTF8.GetDecoder();62 dec.GetChars(data, 0, data.Length, charData, 0);63 }64 catch (Exception ex)65 ![]() {66 throw ex;67 }68 return Convert.ToString(charData);69 }70 ![]() /**//// <summary>71 /// StreamWriter寫文件72 /// </summary>73 public void StreamWriterWriteFile()74 ![]() {75 try76 ![]() {77 FileStream nFile = new FileStream("love.txt", FileMode.CreateNew);78 StreamWriter writer = new StreamWriter(nFile);79 ![]() 80 writer.WriteLine("I love You!");81 writer.WriteLine("Do you love me!");82 writer.Close();83 }84 catch85 ![]() { }86 }87 ![]() /**//// <summary>88 /// StreamReader讀取文件89 /// </summary>90 /// <returns></returns>91 public string StreamReaderReadFile()92 ![]() {93 string str="";94 try95 ![]() {96 FileStream file = new FileStream("love.txt", FileMode.Open);97 StreamReader sr = new StreamReader(file);98 while (sr.ReadLine()!=null)99 ![]() {100 str += sr.ReadLine();101 }102 //或者str = sr.ReadToEnd();103 sr.Close();104 }105 catch106 ![]() { }107 return str;108 }109 }110 ![]() |
|
|