我在File类里并没有找到可以直接修改文本文件内容的方法,那么要想修改文本文件内容的话,只有一个办法了:先把文本文件的内容全部读出来,再写入一个新的文本文件里,覆盖原来的那个文本文件就行了。
具体实现方法如下:
StreamReader sr = File.OpenText(Server.MapPath("file.txt"));
string str = sr.ReadToEnd();
sr.Close();
StreamWriter sw = File.CreateText(Server.MapPath("file.txt"));
sw.Write(str);
sw.WriteLine("这是追加的文字");
sw.Close();
上面是把文字追加到原有文字后面,如果不是追加,而是修改的话,只要用string里的一些方法都可以实现的,如Replace等。这些就不多说了,完整代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace test
{
/// <summary>
/// file 的摘要说明。
/// </summary>
public class file : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if (!this.IsPostBack)
{
//打开一个文件
StreamReader sr = File.OpenText(Server.MapPath("file.txt"));
//读取所有文字
string str = sr.ReadToEnd();
sr.Close();
//新建一个文件
StreamWriter sw = File.CreateText(Server.MapPath("file.txt"));
//写入所有文字
sw.Write(str);
//追加一行文字
sw.WriteLine("这是追加的文字");
sw.Close();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}