流用於對IO處理
在System.IO名稱空間中有以下類
BinaryReader/Writer
TextReader/Writer
Stream
其中類Stream為抽象類。由此有三個派生類:
MemoryStream:對內存進行讀取與寫入
BufferedStream:對緩沖器進行讀取/寫入
FileStream:對文件執行讀取與寫入
TextReader/Writer為抽象類。由此派生類:
StreamReader/StreamWirter
StringReader/StreamWriter
需要引入命名空間:
using System.IO
內存流與緩沖的使用舉例: MemoryStream memStream=new MemoryStream(); BufferedStream bufStream=new BufferedStream(memStream); byte[] b=new byte[10]; for(int i=0;i<10;i++) { bufStream.WriteByte((byte)i); } bufStream.Position=0; bufStream.Read(b,0,9); for(int i=0;i<10;i++) { Console.WriteLine("讀的值是:{0}",b[i]); } Console.WriteLine("值是:{0}",bufStream.ReadByte()); Console.ReadLine();
文件流的使用 string s=Console.ReadLine(); FileStream fileStream=new FileStream(s,FileMode.OpenOrCreate); BinaryWriter binStream=new BinaryWriter (fileStream); for(int i=1;i<=10;i++) { binStream.Write((int)i); } binStream.Close(); fileStream.Close(); FileStream f=new FileStream(s,FileMode.Open,FileAccess.Read,FileShare.ReadWrite); BinaryReader buf=new BinaryReader(f); for(int i=1;i<10;i++) { Console.WriteLine("輸出{0}",buf.ReadByte ()); //在vs2012中這樣不能讀出東西來 Console.WriteLine("輸出{0}",Bur.ReadInt32());才行,因為int是32位的 }
文本流的使用 string fileName,s; fileName=Console.ReadLine(); StreamWriter fn=new StreamWriter(fileName,true); for(int i=1;i<10;i++) { s=Console.ReadLine(); fn.WriteLine(s); } fn.Close(); StreamReader fr=new StreamReader(fileName); for(int i=1;i<10;i++) { s=fr.ReadLine(); Console.WriteLine(s); } fr.Close(); Console.ReadLine();
字符串流的使用 using System.Text; StringBuilder str=new StringBuilder(100,1000); StringWriter sw=new StringWriter(str); for(int i=1;i<5;i++) { sw.Write(Console.ReadLine()); } sw.Close(); Console.WriteLine(sw.ToString()); StringReader sr=new StringReader(sw.ToString()); Console.WriteLine(sr.ReadLine()); Console.ReadLine();