C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■87616 / 2階層)  C# seekでの読み込み位置変更について
□投稿者/ Hongliang (647回)-(2018/06/14(Thu) 09:22:26)
回答自体はAzuleanさんの仰るようにReadLineで読み飛ばすようにするでいいとして、なぜSeekのあとのReadLineが思ったような結果を返さないのかという点について。

Streamから1バイトずつ読み取るという作業はパフォーマンスがよろしくないので、StreamReaderは内部にバッファを持ち、ある程度まとめてStreamから読み取ります。
ちなみにバッファサイズはコンストラクタで指定できますが最小で128バイト。既定は1024バイト。
バッファが足りている間はStreamからの読み取りを行わないので、StreamをいくらSeekしたところでそれとは無関係に、事前に読み込んだバッファから文字列を作って返してきます。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: C# seekでの読み込み位置変更について /Azulean 返信無し
 
上記関連ツリー

C# seekでの読み込み位置変更について / mau (18/06/14(Thu) 02:00) #87614
Re[1]: C# seekでの読み込み位置変更について / Azulean (18/06/14(Thu) 06:25) #87615
│└ C# seekでの読み込み位置変更について / Hongliang (18/06/14(Thu) 09:22) #87616 ←Now
Re[1]: C# seekでの読み込み位置変更について / ????? (18/06/14(Thu) 09:34) #87617
│└ Re[2]: C# seekでの読み込み位置変更について / にゃるら (18/06/14(Thu) 09:36) #87618
Re[1]: C# seekでの読み込み位置変更について / WebSurfer (18/06/14(Thu) 12:15) #87628

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信