36

テキスト ファイルの最後の行を読み取る方法を知る必要があります。行を見つけて、それを SQL データベースに処理する必要があります
。すなわち:

  1. ファイルの最後の行を見つけます。
  2. ファイルの最後の行を処理します。
4

6 に答える 6

83

方法は 2 つあります。シンプルで非効率な方法と、恐ろしく複雑ですが効率的な方法です。複雑なバージョンは、適切なエンコーディングを前提としています。

ファイルが大きすぎてすべてを読み取る余裕がない場合を除き、次のようにします。

var lastLine = File.ReadLines("file.txt").Last();

これはFile.ReadLinesではなく File.ReadAllLinesを使用することに注意してください。.NET 3.5 以前を使用しているFile.ReadAllLines場合は、独自のコードを使用または記述する必要があります。ファイル全体を一度にメモリにReadAllLines読み込み、ストリーミングします。ReadLines

それ以外の場合、複雑な方法は、こののようなコードを使用することです。UTF-8 マルチバイト文字などの厄介な処理を処理して、ファイルの最後から逆方向に読み取ろうとします。楽しくない。

于 2012-07-24T06:57:38.937 に答える
9

I would simply combine File.ReadLines(path) and Enumerable.Last:

String last = File.ReadLines(@"C:\file.txt").Last();

It streams the lines and does not load all into memory as File.ReadAllLines.

于 2012-07-24T07:00:10.700 に答える
9

First part:

File.ReadAllLines(@"c:\some\path\file.txt").Last();

or

File.ReadLines(@"c:\some\path\file.txt").Last();

ReadLines is prefered.

于 2012-07-24T07:00:24.447 に答える
6
string m = "";
StreamReader r = new StreamReader("file_path");
while (r.EndOfStream == false)
{
    m = r.ReadLine();
}
Console.WriteLine("{0}\n", m);
r.Close();
于 2013-10-15T04:25:17.187 に答える
-2
string last = File.ReadLines(@"C:\file.txt").Last();
string lastsymbol = last[last.Count - 1];
于 2016-11-05T17:38:31.880 に答える