以下の手順でどうでしょうか。 FileStreamを作成する FileStream.Seek(-バッファーサイズ、SeekOrigin.End)で末尾から一定の位置に移動する FileStream.Readでbyte[]に値を読み込む(1回で完了しない可能性があるため繰り返し処理が必要です) バッファーの末尾からLF=0x0Aを探す(UTF-8であればマルチバイト文字は必ず0x80以上です) 見つかったらSeekでLFの次のバイトに移動し、StreamReaderで文字列にする。 見つからなかったら位置を変えて2からやり直す コードを追加しました。 static void Main(string[] args) { int BUFFER_SIZE = 32; // バッファーサイズ(あえて小さく設定) int lineCountToWrite = 10; // 探索行数 var buffe
![テキストファイルの末尾からn行を読み込むには(C#)](https://cdn-ak-scissors.b.st-hatena.com/image/square/f6bc393cd0b6bd2196935e603c5d031bd6ca6699/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fja%2FImg%2Fapple-touch-icon%402.png%3Fv%3D1cfb10b305ca)