C#フローまとめ(ファイルフロー、メモリフロー、ネットワークフロー、BufferedStream、StreamReader/streamWriter、TextReader/TextWriter)
9915 ワード
一、ファイルフロー
FileStreamクラスは主にディスクファイルの読み書きに使用されます.ディスクにデータを格納したり、プロファイルを読み込んだりするのによく使用されます.
ファイルの読み込み:
書き込みファイル:
二、ネットワークフロー
NetWorkStreamクラスは、サーバとクライアントの通信を処理するためのストリームです.ネットワークプログラミングでよく使用され、主にSocket、TcpClient、TcpListenerのようなクラスで得られるストリームを処理するために使用されます.
単一のTCP同期方式、サーバーとクライアントの通信:
三、メモリフロー
MemoryStreamクラスは、主にメモリ内のデータを操作するために使用されます.例えば、ネットワーク内でデータを転送する際にストリームの形式を用いることができ、これらのストリームデータを受信すると、MemoryStreamクラスを宣言して格納し、処理することができる.
MemoryStreamアクション文字列:
四、StreamReader/streamWriter
StreamReader/streamWriterは主にストリームデータを処理するために使用されます.これらは、それぞれ効率的なストリーム読み取り/書き込み機能を提供します.
読み込み:
書き込み:
五、TextReader/TextWriter
TextReader/TextWriterクラスは主にストリームデータの処理に用いられる.これらは、それぞれ効率的なテキストストリームの読み取り/書き込み機能を提供します.
注意事項:
1.ストリームを使用した後、閉じる必要があります.
2.ストリーム内のデータをメモリにロードするときは、メモリオーバーフローなどの問題を考慮します.
記事の出所>>
FileStreamクラスは主にディスクファイルの読み書きに使用されます.ディスクにデータを格納したり、プロファイルを読み込んだりするのによく使用されます.
ファイルの読み込み:
// :
FileStream fileStream = File.Open(@"D:\test.txt", FileMode.Open);//
byte[] array = new byte[fileStream.Length];// ,
fileStream.Read(array, 0, array.Length);// ,
fileStream.Close(); //
string str = Encoding.Default.GetString(array);//
Response.Write(str);
書き込みファイル:
// :
FileStream fileStream = File.Open(@"D:\test.txt",FileMode.Append);//
byte[] array = Encoding.Default.GetBytes(" 123abc");//
fileStream.Write(array, 0, array.Length);//
fileStream.Close();//
二、ネットワークフロー
NetWorkStreamクラスは、サーバとクライアントの通信を処理するためのストリームです.ネットワークプログラミングでよく使用され、主にSocket、TcpClient、TcpListenerのようなクラスで得られるストリームを処理するために使用されます.
単一のTCP同期方式、サーバーとクライアントの通信:
TcpListener lis=new TcpListener(5000); //
lis.Start();//
Socket sock=lis.AcceptSocket();// ,
NetworkStream networkStream = new NetworkStream(sock);// Socket
if (netStream.DataAvailable) //
{
byte[] data = new byte[1024]; // ,
int len = netStream.Read(data, 0, data.Length); // ,
string line = Encoding.Default.GetString(data, 0, len); //
}
TcpClient client = new TcpClient();// tcp
client.Connect("127.0.0.1", 5000);//
NetworkStream myStream = client.GetStream();//
byte[] data = Encoding.Default.GetBytes("Hi, "); //
myStream .Write(data, 0, data.Length); // myStream
myStream .Flush(); //
myStream .Close();
三、メモリフロー
MemoryStreamクラスは、主にメモリ内のデータを操作するために使用されます.例えば、ネットワーク内でデータを転送する際にストリームの形式を用いることができ、これらのストリームデータを受信すると、MemoryStreamクラスを宣言して格納し、処理することができる.
MemoryStreamアクション文字列:
string str = "Hi! !";
byte[] array = Encoding.UTF8.GetBytes(str);//
MemoryStream memory = new MemoryStream(array);// MemoryStream
byte[] arrayNew = memory.ToArray();//
string strNew = Encoding.UTF8.GetString(arrayNew);//
四、StreamReader/streamWriter
StreamReader/streamWriterは主にストリームデータを処理するために使用されます.これらは、それぞれ効率的なストリーム読み取り/書き込み機能を提供します.
読み込み:
//StreamReader
StreamReader reader = new StreamReader(@"D:\test.txt",Encoding.Default);// ,
string readStr = reader.ReadLine();// reader.ReadToEnd()
reader.Close();//
書き込み:
//StreamWriter
StreamWriter writer = new StreamWriter(@"D:\test1.txt");//
writer.WriteLine("Hi 123");//
writer.Close();
五、TextReader/TextWriter
TextReader/TextWriterクラスは主にストリームデータの処理に用いられる.これらは、それぞれ効率的なテキストストリームの読み取り/書き込み機能を提供します.
//TextReader/Writer
TextReader textReader = new StringReader("Hi ");//
TextWriter textWriter = new StringWriter();//
char[] c=new char[4096];
int chars = 0;
while ((chars = textReader.Read(c, 0, 4096)) > 0)//
{
textWriter.Write(c, 0, 4096);//
}
string str= textWriter.ToString();//
textReader.Close();//
textWriter.Close();
注意事項:
1.ストリームを使用した後、閉じる必要があります.
2.ストリーム内のデータをメモリにロードするときは、メモリオーバーフローなどの問題を考慮します.
記事の出所>>