0

私は基本的に、そのファイルを上書きせずに、テキスト ファイルの末尾に 1 つの数値を追加しようとしています。現在、ファイルから読み取り、そのデータを文字列に格納してからリストに追加し、新しい整数をリストに追加してからファイルに書き込もうとしました。

M = @"C:\Mental.txt";      
StreamReader content = new StreamReader(M, Encoding.Default);
string m = content.ReadToEnd();
List<int> num = 
  new List<int>(m.Split((string[])null, StringSplitOptions.RemoveEmptyEntries)
  .Select(int.Parse));
num.Add(4);
content.Close();
content.Dispose();

var s = num.Select(i => i.ToString()).ToArray();
File.WriteAllLines(M,s);

コードの書き方や機能しない理由について他に提案があれば、よろしくお願いします。このコードのさまざまなバリエーションを試しましたが、出力がファイルと同じデータである場合に同じ問題が発生し続けますが、1 つだけを追加したい場合に多数の '4' が追加されます。

私のファイルが以前に含まれていた場合のIE:

1
2
3

それは今含まれます

1
2
3
4
4
4
4
4
4
4
4
...etc
4

2 に答える 2

1

追加する前にファイル全体を読み取る必要はありません。次のようなことを試してください:

using (StreamWriter w = File.AppendText("filename"))
{
  w.WriteLine("something to append");
}
于 2013-03-13T05:44:33.810 に答える
1
String filePath = @"C:\Mental.txt";

File.AppendAllText(filePath , "content");

この方法を試してください

編集:

あなたのコードは私のマシンで問題なく動作します。関数が何度も何度も呼び出されていないこと、またはループで呼び出されていないことを確認してください。

于 2013-03-13T05:40:31.017 に答える