在本章中,我们将介绍如何使用网站中的文本文件.您可以使用文本文件作为存储网站数据的简单方法.
文本文件可以采用不同的格式,例如* .txt,*.xml或* .csv.
您可以使用 File.WriteAllText 方法指定要创建然后向其写入数据的文件.
您可以读/写并从/向文本文件移动数据.
让我们看一个简单的例子,我们将把学生信息写入一个文本文件.首先我们需要创建一个新的CSHTML文件
在名称字段中输入 TextData.cshtml ,然后单击"确定"继续.在这个例子中,我们将创建一个简单的表单,用户可以在其中输入学生信息,如名字,姓氏和标记.
我们还需要在
让我们替换 TextData.cshtml 文件中的以下代码.
@{ var result = ""; if (IsPost){ var firstName = Request["FirstName"]; var lastName = Request["LastName"]; var marks = Request["Marks"]; var userData = firstName + "," + lastName + "," + marks + Environment.NewLine; var dataFile = Server.MapPath("~/App_Data/Data.txt"); File.WriteAllText(@dataFile, userData); result = "Information saved."; } } <!DOCTYPE html> <html> <head> <title>Write Data to a File</title> </head> <body> <form id = "form1" method = "post"> <div> <table> <tr> <td>First Name:</td> <td><input id = "FirstName" name = "FirstName" type = "text" /></td> </tr> <tr> <td>Last Name:</td> <td><input id = "LastName" name = "LastName" type = "text" /></td> </tr> <tr> <td>Marks:</td> <td><input id = "Marks" name = "Marks" type = "text" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Submit"/></td> </tr> </table> </div> <div> @if(result != ""){ <p>Result: @result</p> } </div> </form> </body> </html>
在代码中,我们使用了 IsPost 属性来确定页面是否在开始处理之前已经提交. File对象的 WriteAllTex 方法有两个参数,文件名路径和要写入文件的实际数据.
现在让我们运行这个应用程序指定以下网址和减号; http://localhost:36905/TextData ,您将看到以下网页.
让我们在所有字段中输入一些数据.
现在点击提交按钮.
如您所见,保存信息,现在让我们打开 Data.txt 文件,您将看到数据被写入文件.
为了将数据写入文本文件,我们使用了WriteAllText.如果再次调用此方法并使用相同的文件名传递它,则它将完全覆盖现有文件.但在大多数情况下,我们经常希望在文件末尾添加新数据,因此我们可以通过使用文件对象的 AppendAllText 方法来实现.
让我们看看同一个例子,我们只需将 WriteAllText()更改为AppendAllText(),如下面的程序所示.
@{ var result = ""; if (IsPost){ var firstName = Request["FirstName"]; var lastName = Request["LastName"]; var marks = Request["Marks"]; var userData = firstName + "," + lastName + "," + marks + Environment.NewLine; var dataFile = Server.MapPath("~/App_Data/Data.txt"); File.AppendAllText(@dataFile, userData); result = "Information saved."; } } <!DOCTYPE html> <html> <head> <title>Write Data to a File</title> </head> <body> <form id = "form1" method = "post"> <div> <table> <tr> <td>First Name:</td> <td><input id = "FirstName" name = "FirstName" type = "text" /></td> </tr> <tr> <td>Last Name:</td> <td><input id = "LastName" name = "LastName" type = "text" /></td> </tr> <tr> <td>Marks:</td> <td><input id = "Marks" name = "Marks" type = "text" /></td> </tr> <tr> <td></td> <td><input type = "submit" value = "Submit"/></td> </tr> </table> </div> <div> @if(result != ""){ <p>Result: @result</p> } </div> </form> </body> </html>
现在让我们运行应用程序并指定以下url http://localhost:36905/TextData ,您将看到以下内容网页.
输入一些数据和单击提交按钮.
现在,当您打开Data.txt文件时,您将看到数据附加在此文件的末尾.
到从文件中读取数据,您可以使用File对象,然后调用 ReadAllLines(),它将读取文件中的所有行.为此,我们创建一个新的CSHTML文件.
在"名称"字段中输入 ReadData.cshtml ,然后单击"确定".
现在替换ReadData.cshtml文件中的以下代码.
@{ var result = ""; Array userData = null; char[] delimiterChar = {','}; var dataFile = Server.MapPath("~/App_Data/Data.txt"); if (File.Exists(dataFile)) { userData = File.ReadAllLines(dataFile); if (userData == null) { // Empty file. result = "The file is empty."; } } else { // File does not exist. result = "The file does not exist."; } } <!DOCTYPE html> <html> <head> <title>Reading Data from a File</title> </head> <body> <div> <h1>Reading Data from a File</h1> @result @if (result == "") { <ol> @foreach (string dataLine in userData) { <li> Student <ul> @foreach (string dataItem in dataLine.Split(delimiterChar)) { <li>@dataItem</li > } </ul> </li> } </ol> } </div> </body> </html>
现在让我们再次运行应用程序,并指定以下url http://localhost:36905/ReadData ,你会看到关注网页.