答えて
代わりのlines.Take
:使用される技術は、(すべてのテキストを読み、バック、すべてを書き)非常に非効率的であるという事実にもかかわらず、最初に切り捨てること
var lines = File.ReadAllLines("test.txt");
File.WriteAllLines("test.txt", lines.Skip(1).ToArray());
を。
効率的な方法について:ファイル全体をメモリに読み込む必要があるため、非効率的です。もう1つの方法は、ストリームを探して別の出力ファイルにコピーし、元のファイルを削除し、古いファイルの名前を変更することです。それは同じ速さでありながら、はるかに少ないメモリを消費します。
最後にファイルを切り捨てる方がはるかに簡単です。あなたはトランクアクション位置を見つけることができ、FileStream.SetLength()
と呼ぶことができます。
これは非効率的ですが、ファイルの先頭を切り捨てる方法はありますか? –
はい、私の答えに記載されているように書くだけです。 –
@ssg:書き込み部分を省略すると、ファイルはどのように更新されますか?私は何かが欠けていると仮定します... – Chris
var lines = System.IO.File.ReadAllLines("test.txt");
System.IO.File.WriteAllLines("test.txt", lines.Skip(1).ToArray());
Skip
は、シーケンスのを開始から指定の要素数分を排除します。 Take
は、シーケンスのエンドから指定された数の要素を除くすべての要素を削除します。あなたがIEnumerable<string>
を必要とし、あなたがこのような何かを行うことができ、メモリを無駄にしたくない場合は
using (var stream = File.OpenRead("C:\\yourfile"))
{
var items = new LinkedList<string>();
using (var reader = new StreamReader(stream))
{
reader.ReadLine(); // skip one line
string line;
while ((line = reader.ReadLine()) != null)
{
//it's far better to do the actual processing here
items.AddLast(line);
}
}
}
更新
:
public static IEnumerable<string> GetFileLines(string filename)
{
using (var stream = File.OpenRead(filename))
{
using (var reader = new StreamReader(stream))
{
reader.ReadLine(); // skip one line
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
}
static void Main(string[] args)
{
foreach (var line in GetFileLines("C:\\yourfile.txt"))
{
// do something with the line here.
}
}
は、代替ですテキストファイルから第1行を削除するには
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
string data = file.ReadToEnd();
file.Close();
data = Regex.Replace(data, "<.*\n", "");
System.IO.StreamWriter file = new System.IO.StreamWriter(filePath, false);
file.Write(data);
file.Close();
- 1. C#.netでテキストファイルの現在の行を削除するには?
- 2. テキストファイルの最後の行を削除します。
- 3. ユーザー入力を使用して区切られたテキストファイルから特定の行を削除します。これは私の現在のコードです(Java)の
- 4. Cを使用してASCIIテキストファイルの最後の行だけを削除する方法は?
- 5. 現在の/最後の行をvb.netのDatagridviewrowsから削除する
- 6. テキストファイルの最後から空白行を削除する
- 7. のBindingSourceは、私は私のフォームでレコードを削除するためのBindingSourceを使用して、現在の
- 8. この最後のif文を削除することはできますか?
- 9. spaCyを使用して句読点を削除する。現在
- 10. スウィフトを使用してテキストファイルから1行を削除する
- 11. Sedを使用してテキストファイルから行を削除する
- 12. Emacsでは現在の行からファイルの最後までを削除する方法は?
- 13. sedを使用して最後のコンマを削除する
- 14. バッチを使用してテキストファイルの空白行と空白を削除する
- 15. のJava - 私が使用してJsonObjectからキーを削除することができるよJsonObject
- 16. Node.jsでテキストファイルの最初の15k行を削除します。
- 17. テキストファイル内の行を削除した後に空白を削除するVB6
- 18. 削除ポストは、私は現在、リンクを介して投稿を削除しようとしている
- 19. ジオメトリシェーダを使用してポイントを削除することができます
- 20. 正規表現を使用してCSVファイルから最後の行を含む「文字列」を削除する
- 21. データベースが現在使用中であっても削除する方法[Entity Framework]
- 22. lmerを使用した混合モデルで後方削除を行うことができます
- 23. bootstrap.jsは、私は現在、このプラグインを使用してい
- 24. は現在、私はこのコードを使用してiPhoneアプリ
- 25. Process.Startは、私は現在、このメソッドを使用してい
- 26. 私はテキストファイルから1行を削除できません。C++
- 27. 豚スクリプトを使用してファイルの最初と最後の行を削除する
- 28. 削除は、私は、ユーザーがフィールドの複数の行を追加することができますが、私はフィールドの非常に最初の行の削除リンクを含めるようにしたくないので、彼らができない分野
- 29. jspdf - 最後の段落行が削除されています
- 30. 私は、次のコマンドを使用して、テキストファイルにCMDデータを保存することができています
あなたが探している答えではないかもしれませんが、最初の行を表すバイトをNULLに置き換えるのはどうでしょうか?次回にFile.ReadAllLinesを実行すると、最初のNULLバイトをすべてスキップします – Polity