FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据 StreamWriter允许将字符和字符串写入文件,它处理底层的转换,向FileStream对象写入数据。StreamReader也类似。 实例: using System; using System.Data; using System.IO; using System.Text;
/// Summary description for FileReadAndWrite public class FileReadAndWrite { public FileReadAndWrite() { // TODO: Add constructor logic here } /// 用FileStream写文件 public void FileStreamWriteFile(string str) { byte[] byData; char[] charData; try { FileStream nFile = new FileStream("love.txt", FileMode.Create); //获得字符数组 charData = str.ToCharArray(); //初始化字节数组 byData = new byte[charData.Length]; //将字符数组转换为正确的字节格式 Encoder enc = Encoding.UTF8.GetEncoder(); enc.GetBytes(charData, 0, charData.Length,byData,0,true); nFile.Seek(0, SeekOrigin.Begin); nFile.Write(byData, 0, byData.Length); } catch (Exception ex) { throw ex; } } /// FileStream读取文件 public string FileStreamReadFile(string filePath) { byte[] data = new byte[100]; char[] charData = new char[100]; try { FileStream file = new FileStream(filePath, FileMode.Open); //文件指针指向0位置 file.Seek(0, SeekOrigin.Begin); //读入两百个字节 file.Read(data, 0, 200); //提取字节数组 Decoder dec = Encoding.UTF8.GetDecoder(); dec.GetChars(data, 0, data.Length, charData, 0); } catch (Exception ex) { throw ex; } return Convert.ToString(charData); } /// StreamWriter写文件 public void StreamWriterWriteFile() { try { FileStream nFile = new FileStream("love.txt", FileMode.CreateNew); StreamWriter writer = new StreamWriter(nFile); writer.WriteLine("I love You!"); writer.WriteLine("Do you love me!"); writer.Close(); } catch { } } /// StreamReader读取文件 public string StreamReaderReadFile() { string str=""; try { FileStream file = new FileStream("love.txt", FileMode.Open); StreamReader sr = new StreamReader(file); while (sr.ReadLine()!=null) { str += sr.ReadLine(); } //或者str = sr.ReadToEnd(); sr.Close(); } catch { } return str; } }