トピックに精通している人にとっては、新しいものはここにありません。
ここに主なクラスがあります:
ストリーム
-要約バイトシーケンスの汎用表現を提供します。
メモリストリーム
バックアップストレージがメモリであるスレッドを作成します。
そして読み取りと書き込み。
バイト[]を処理するこのような手段。
コードの一部:
バイト[]バッファ=新しいバイト[] {11,12,13,14,15,16,17,18,19,20};
バイト[] buffer2 =新しいバイト[] {21,22,23};
MemoryStream memStream =新しいMemoryStream(バッファ);
memStream.WriteByte(66);
memStream.WriteByte(77);
int adsfs = memStream.ReadByte();
int adsfs2 = memStream.ReadByte();
memStream.Position = 5;
memStream.Write(buffer2、0、2);
memStream.Seek(2、SeekOrigin.Current);
興味深いことに、読み取りと書き込みの両方が、書き込み/読み取りバイト数だけストリーム内の位置を等しく移動します。
ファイルストリーム
すべて同じ、ファイルからの書き込み/読み取り
コードの一部:
FileStream fileStream = new FileStream( "file33.txt"、FileMode.Open);
バイト[] buffer2 =新しいバイト[] {71、72、73};
var b1 = fileStream.ReadByte();
var b2 = fileStream.ReadByte();
var b3 = fileStream.ReadByte();
fileStream.WriteByte((byte)b3);
fileStream.WriteByte((byte)b3);
//およびすべてのプロパティ
var b = fileStream.CanRead;
b = fileStream.CanWrite;
b = fileStream.CanSeek;
fileStream.Position = 106;
fileStream.Write(buffer2、0、3);
fileStream.Seek(1、SeekOrigin.End);
fileStream.WriteByte(76);
fileStream.WriteByte(76);
fileStream.WriteByte(76);
fileStream.WriteByte(76);
ReadByte()は、読み取りが失敗したとき(-1)を理解するためにintを返します。
テキストリーダー
-要約Streamではなく、バイトではなく文字(読み取り専用)を読み取ることができるアドオン。
連続した文字セットを読み取るリーダーを表します。
ストリームリーダー
コードの一部:
バイト[]バッファ=新しいバイト[] {71,72,73,74,75,76,77,78,79,80、80,80,80};
バイト[] buffer2 =新しいバイト[] {81,82,83};
MemoryStream memStream =新しいMemoryStream(バッファ);
使用(StreamReader strReader = new StreamReader(memStream))
{
var sd = strReader.Peek();
var sdd = strReader.Peek();
var sded = strReader.Peek();
var dasd = strReader.Read();
文字列s =((char)dasd).ToString();
var das2d = strReader.Read();
var das3d = strReader.Read();
strReader.BaseStream.Position = 8;
var vsd = strReader.ReadToEnd();
}
データがバッファリングされるため、Positionがジャンプすることを除き、すべてが簡単になりました。
StringReader
コードの一部:
string s = "SDAFASDF AF dfsdfsd fas";
StringReader stringReader = new StringReader(s);
var sdf = stringReader.Read();
var sddf = stringReader.Read();
var sddasdf = stringReader.Read();
var sdsssf = stringReader.Read();
var sdfaa = stringReader.Read();
var sdfg = stringReader.ReadLine();
テキストライター
-要約連続した文字セットを記録するレコーダーを表します。
ストリームライター
ストリームに書き込むためのストリームアドイン。 抽象TextWriterから派生
コードの一部:
FileStream fileStream = new FileStream( "file33.txt"、FileMode.Open);
fileStream.Seek(1、SeekOrigin.End);
StreamWriter strWriter = new StreamWriter(fileStream);
strWriter.Write( "sad");
strWriter.WriteLine( "sad");
strWriter.Write( "sad");
strWriter.Close();
ストリームの位置は記録時に変更されません。
コードの一部:
バイト[]バッファ=新しいバイト[] {71、72、73、74、75、76、77、78、79、80、80、80、80}。
MemoryStream memStream =新しいMemoryStream(バッファ);
StreamWriter strWriter = new StreamWriter(memStream);
strWriter.Write( "sad");
// strWriter.Write( "sasfagfsdghs h dfhdh d hd ddf d");
strWriter.Close();
Xmlreader
別のアドオン。 これで、TextReaderの上に。 文字列、ストリーム、およびテキストリーダーとして初期化できます。
コードの一部:
FileStream fileStream = new FileStream( "file1.txt"、FileMode.Open);
XmlReader reader = XmlReader.Create(fileStream);
StringBuilder output = new StringBuilder();
XmlWriter writer = XmlWriter.Create(出力);
//ファイルを解析し、各ノードを表示します。
while(reader.Read())
{
スイッチ(reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
休憩;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
休憩;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name、reader.Value);
休憩;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
休憩;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
休憩;
}
}
writer.Close();
かなり奇妙な(しかし最速のように見える)xmlを読み取ります。 つまり、XdocumentまたはXMLDocumentの方がはるかに便利ですが、実際には、これらのクラスはこの構造の追加アドオンです。
Xmlwriter
XMLデータへの高速でキャッシュされないフォワード専用アクセスを提供するリーダーを表します。
このタイプのメソッドを備えたTextWriter(StreamWriter)のアドオン:
コードの一部:
使用(XmlWriter writer = XmlWriter.Create(xmlFile、settings))
{
writer.WriteStartDocument(false);
writer.WriteComment( "これはコメントです。");
writer.WriteStartElement( "books");
writer.WriteStartElement( "book");
writer.WriteElementString( "id"、 "1");
writer.WriteElementString( "name"、 "Apple Training Series:GarageBand 09");
writer.WriteElementString( "author"、 "Mary Plummer");
writer.WriteElementString( "price"、 "$ 39.99");
writer.WriteEndElement();
writer.WriteEndElement();
writer.Flush();
}
}