簡體   English   中英

在C#中附加文字

[英]Appending text in C#

將方法更改為AppendText時,例如writeout.AppendText(firstline),我得到StreamWriter不支持...

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

我想要覆蓋文本文件中的“第一行”,而不是覆蓋文本文件中的現有數據

更改StreamWriter writeout = new StreamWriter(path); StreamWriter writeout = new StreamWriter(path, true);

請參閱http://msdn.microsoft.com/zh-cn/library/aa328969%28v=vs.71%29.aspx

或者,您可以使用File.AppendText ,例如StreamWriter writeout = File.AppendText(path)

甚至只是File.AppendAllText ,例如File.AppendAllText(path, firstline)

您應該使用顯式選項創建StreamWriter,以便能夠附加到文件。 否則,它將始終創建一個新的。 在未創建要添加的StreamWriter的情況下嘗試調用Append會給出您描述的錯誤。

我不確定,但我認為您可以做到:

StreamWriter寫出=新的StreamWriter(path,true);

使StreamWriter具有附加功能。

希望這可以幫助。

您可以使用StreamWriter構造函數的第二個參數。
StreamWriter writeout = new StreamWriter(path, true);

使用構造函數StreamWriter writeout = new StreamWriter(path, true);

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

使用附加的布爾參數創建StreamWriter,該布爾參數指定是否附加到現有文件:

StreamWriter writeout = new StreamWriter(path, true);

首先通過將StreamWriter.BaseStream.Position設置為流的末尾,找到流的末尾,然后照常繼續。

那怎么用呢?

var lines = new List<string>();
// load lines
System.IO.File.AppendAllLines(path, lines);
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)
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM