2011-04-01 31 views
21

Saludos, parece que no entiendo cómo escribir datos en un archivo sin sobreescribirlo. Sé que puedo usar File.appendtext, pero no estoy seguro de cómo conectarlo a mi sintaxis. Aquí está mi código:Cómo escribir datos en un archivo de texto en C# sin sobrescribir los datos actuales

TextWriter tsw = new StreamWriter(@"C:\Hello.txt"); 

//Writing text to the file. 
tsw.WriteLine("Hello"); 


//Close the file. 
tsw.Close(); 

quiero que escribir Hola cada vez que ejecute el programa, no sobrescribe el archivo de texto anterior. Gracias por leer esto

+0

¿Qué es @ meaning aquí? Gracias – user2420472

Respuesta

5

Tienes que abrir como new StreamWriter(filename, true) de modo que añade al archivo en lugar de sobrescribir.

10

Cambie su constructor para pasar true como el segundo argumento.

TextWriter tsw = new StreamWriter(@"C:\Hello.txt",true); 
0
using (StreamWriter writer = File.AppendText(LoggingPath)) 
{ 
    writer.WriteLine("Text"); 
} 
2

Lo mejor es

File.AppendAllText("c:\\file.txt","Your Text"); 
1

Mira en la clase File.

Se puede crear un StreamWriter con

StreamWriter sw = File.Create(....) 

Puede abrir un archivo existente con

File.Open(...) 

Se puede añadir texto fácilmente con

File.AppendAllText(...); 
2

Aquí es un trozo de código que escribirá valores en un archivo de registro. Si el archivo no existe, lo crea; de lo contrario, solo se agrega al archivo existente. Necesita agregar "using System.IO;" en la parte superior de tu código, si aún no está allí.

string strLogText = "Some details you want to log."; 

// Create a writer and open the file: 
StreamWriter log; 

if (!File.Exists("logfile.txt")) 
{ 
    log = new StreamWriter("logfile.txt"); 
} 
else 
{ 
    log = File.AppendText("logfile.txt"); 
} 

// Write to the file: 
log.WriteLine(DateTime.Now); 
log.WriteLine(strLogText); 
log.WriteLine(); 

// Close the stream: 
log.Close(); 
Cuestiones relacionadas