C#中的文件流和文本流

文本流
文本流用于文本的读写。要谈文本,首先要了解的是文本编码。在网络编程中,常用的是ASCII,UTF8和BigEndianUnicode码。
其中ASCII码最常见。几乎所有的协议都支持ASCII码。SMTP和POP3协议使用UTF8编码,但也支持ASCII码。
1、向文件写入文本流

string strs="sss";

StreamWriter stream=null;

stream=new StreamWriter(@"e:/11.txt",System.Text.Encoding.UTF8);

stream.Write(strs);

stream.Close();

2、向网络流中写入文本

string strs="ssss";

byte[] buffer=System.Text.Encoding.UTF8.GetBytes(strs);//得到字符串的字节流

NetworkStream newStream=new NetworkStream(mySock);

newStream.Write(buffer,0,buffer.Length);

3、从文件读取文本

StreamReader sr=new StreamReader("e://1.txt",System.Text.Encoding.UTF8);

string myStr=sr.ReadToEnd();

sr.Close();

4、从网络流中读取文本

string strs="sssss";

byte[] buffer=System.Text.Encoding.UTF8.GetBytes(strs);

NetworkStream newStream=new NetworkStream(sock);

newStream.Read(buffer,0,buffer.Length);

文件流
1、将网络流数据写入文件

FileStream fileStream=new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.Write);

NetworkStream stream=new NetworkStream(sock);

int readNumber=0;

byte[] buffer=new byte[8];

while(readStream=stream.Read(buffer,0,buffer.Length)>0)

{

fileStream.Write(buffer,0,readStream);//将网络流写到文件流中

fileStream.Flush();//刷新数据流

}

fileStream.Close();

2、将文件写到网络流中

FileStream fileStream=new FileStream(filePath,FileMode.Open,FileAccess.Read);

NetworkStream newStream=new NetworkStream(mysock);

int number;

byte[] buffer=new byte[8];//定义缓存区

while((number=fileStream.Read(buffer,0,buffer.Length))!=0)

{

newStream.write(buffer,0,buffer.Length);

newStream.Flush();//刷新流

buffer=new byte[8];

}

fileStream.Close();

你可能感兴趣的:(文件流)