2013-08-23 2 views
0

두 개의 텍스트 상자에서 데이터를 가져 와서 단추를 눌렀을 때 이미있는 내용을 바꾸지 않고 파일에 쓰려고합니다. 이것은 내가 지금까지 무엇을 가지고 :대체 대신 텍스트 파일에 입력 추가

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); 
     }  
    } 

을 현재는 입력을 받아, 현재 파일입니다 그럼 대신 상대 목록에 추가하는 단 하나 개의 라인이 어떤 대체합니다. 도와 주셔서 감사합니다.

+0

중복 : http://stackoverflow.com/q/c-sharp-append-lines-to-a-file-using-a-streamwriter/7306214/c-sharp-append-lines-to-a-streamwriter – Stephen

답변

2

StreamWriter Constructor (String, Boolean) 생성자를 사용하고 추가로 true을 전달하십시오.

데이터에을 추가하면 true입니다. 파일을 덮어 쓰려면 false입니다. 지정된 파일이 없으면이 매개 변수는 적용되지 않으며 생성자 이 새 파일을 만듭니다. 같은 코드 패스에서

사실 :

using (StreamWriter sw1 = new StreamWriter("DataNames.txt",true)) 
4
//using (StreamWriter sw1 = new StreamWriter("DataNames.txt")) 
//{ 
// sw1.WriteLine(textBox1.Text); 
//} 
System.IO.File.AppendAllText("DataNames.txt", textBox1.Text); 
1

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

두 번째 인수 true 시도는 해당 파일 대신 덮어 쓰기의 추가되어야 알려줍니다. StreamWriter(String, Boolean)

0

두 개의 스트림 작성기 인스턴스를 만들고 모두 동일한 파일에 쓰기 때문에 서로 경쟁하고 있으므로 덮어 쓰기가 표시됩니다.

당신이 파일의 끝에 텍스트를 추가하려면

는 그렇게 할 수있는 가장 좋은 방법은 아마도 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은 매우 유용합니다 스트리밍 작가를 사용하는 것과는 반대로 생각하지 않고 문자열을 보낼 수 있습니다.