.net - tilføjer tekst i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Når du ændrer metoden til AppendText f.eks. writeout.AppendText (firstline) Jeg får StreamWriter understøtter ikke ...


StreamWriter writeout = new StreamWriter(path);
        writeout.WriteLine(firstline);
        writeout.Close();


I stedet for at overskrive eksisterende data i tekstfilen ønsker jeg writeout at tilføje 'firstline' til filen

Bedste reference


Skift StreamWriter writeout = new StreamWriter(path); til StreamWriter writeout = new StreamWriter(path, true);.


Se http://msdn.microsoft.com/en-us/library/aa328969\%28v=vs.71\%29.aspx.[14]


Alternativt kan du bruge File.AppendText, f.eks. StreamWriter writeout = File.AppendText(path).


Eller endda bare File.AppendAllText, f.eks. File.AppendAllText(path, firstline).

Andre referencer 1


Du bør oprette din StreamWriter med den eksplicitte mulighed for at kunne APPEND til filen. Ellers vil det altid skabe en ny. Forsøger at ringe Tilføj, da StreamWriter ikke blev oprettet for at tilføje, giver den fejl, du beskriver.


Jeg er ikke helt sikker, men jeg tror du kan gøre:


StreamWriter writeout=ny StreamWriter (sti, sand);


for at give StreamWriter muligheden for at tilføje.


Håber dette hjælper.

Andre referencer 2


Du kan bruge den anden parameter i StreamWriter-konstruktoren.

StreamWriter writeout = new StreamWriter(path, true);

Andre referencer 3


Brug konstruktøren StreamWriter writeout = new StreamWriter(path, true);

Andre referencer 4


StreamWriter writeout = new StreamWriter(path,true); //true indicates appending
        writeout.WriteLine(firstline);
        writeout.Close();

Andre referencer 5


Opret StreamWriter med en ekstra boolean parameter, der angiver, om du vil tilføje en eksisterende fil eller ej:


StreamWriter writeout = new StreamWriter(path, true);

Andre referencer 6


Søg til slutningen af ​​streamen først ved at indstille StreamWriter.BaseStream.Position til slutningen af ​​streamen og fortsæt som normalt.

Andre referencer 7


Hvad med at bruge dette?


var lines = new List<string>();
// load lines
System.IO.File.AppendAllLines(path, lines);

Andre referencer 8


try
{
    StringBuilder sb = new StringBuilder();
    StreamReader sr = new StreamReader(Path);
    sb.AppendLine(sr.ReadToEnd());
    sb.AppendLine("= = = = = =");
    sb.AppendLine(fileName + " ::::: " + time);
    sr.Dispose();
    if (sw == null)
    {
        sw = new StreamWriter(Path);
    }
    sw.Write(sb.ToString());
    sw.Dispose();

}
catch (Exception e)
{
}