0

2 つのテキスト ボックスからデータを取得しようとしており、ボタンが押されたときに既に存在する現在のものを置き換えずにファイルに書き込もうとしています。これは私がこれまでに持っているものです:

private void button1_Click_1(object sender, EventArgs e)
    {
        using (StreamWriter sw1 = new StreamWriter("DataNames.txt"))
        {
            sw1.WriteLine(textBox1.Text);
        }

        using (StreamWriter sw2 = new StreamWriter("DataNumbers.txt"))
        {
            sw2.WriteLine(textBox2.Text);
        }    
    }

現在、入力を受け取り、現在ファイルにあるものをすべて置き換えるため、リストに追加するだけでなく、1 行だけになります。助けてくれてありがとう。

4

5 に答える 5

0

を切り替える

new StreamWriter("DataNumbers.txt")

File.CreateText("DataNames.txt")

詳細については、次を参照してください。

http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx

于 2013-08-23T19:13:20.787 に答える
0

ストリーム ライターの 2 つの個別のインスタンスを作成しており、両方とも同じファイルに書き込もうとしているため、互いに競合しています。そのため、上書きが発生しています。

ファイルの末尾にテキストを追加する場合、おそらく File.AppendAllText を使用するのが最善の方法です: http://msdn.microsoft.com/en-us/library/ms143356.aspx

private void button1_Click_1(object sender, EventArgs e)
{
    System.IO.File.AppendAllText("DataNames.txt", textBox1.Text + textBox2.Text);
}

AppendAllText は、ストリームライターを使用していることを確認するのではなく、何も考えずに文字列を送信できるため、小規模で比較的まれな追加を行う場合に非常に便利です。

于 2013-08-23T19:10:42.217 に答える