- ASP.NET WP 教程
- ASP.NET WP - 首頁
- ASP.NET WP - 概述
- ASP.NET WP - 環境設定
- ASP.NET WP - 快速入門
- ASP.NET WP - 檢視引擎
- 專案資料夾結構
- ASP.NET WP - 全域性頁面
- ASP.NET WP - 程式設計概念
- ASP.NET WP - 佈局
- ASP.NET WP - 表單操作
- ASP.NET WP - 頁面物件模型
- ASP.NET WP - 資料庫
- ASP.NET WP - 新增資料庫資料
- ASP.NET WP - 編輯資料庫資料
- ASP.NET WP - 刪除資料庫資料
- ASP.NET WP - WebGrid
- ASP.NET WP - 圖表
- ASP.NET WP - 檔案操作
- ASP.NET WP - 圖片操作
- ASP.NET WP - 影片操作
- ASP.NET WP - 新增郵件功能
- ASP.NET WP - 新增搜尋功能
- 新增社交網路功能到網站
- ASP.NET WP - 快取
- ASP.NET WP - 安全性
- ASP.NET WP - 釋出
- ASP.NET WP 有用資源
- ASP.NET WP - 快速指南
- ASP.NET WP - 有用資源
- ASP.NET WP - 討論
ASP.NET WP - 檔案操作
本章將介紹如何在您的網站中處理文字檔案。您可以使用文字檔案作為一種簡單的方法來儲存網站資料。
文字檔案可以採用不同的格式,例如 *.txt、*.xml 或 *.csv。
您可以使用 `File.WriteAllText` 方法指定要建立的檔案,然後向其中寫入資料。
您可以讀取/寫入和移動文字檔案中的資料。
寫入資料到檔案
讓我們來看一個簡單的例子,我們將把學生資訊寫入文字檔案。首先,我們需要建立一個新的 CSHTML 檔案。
在名稱欄位中輸入 `TextData.cshtml` 並單擊確定繼續。在這個例子中,我們將建立一個簡單的表單,使用者可以在其中輸入學生資訊,例如名字、姓氏和分數。
我們還需要在 `App_Data` 資料夾中建立一個名為 `Data.txt` 的文字檔案。
讓我們替換 `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` 物件的 `WriteAllText` 方法接受兩個引數:檔名路徑和要寫入檔案的實際資料。
現在讓我們執行這個應用程式並指定以下 URL:`https://:36905/TextData`,您將看到以下網頁。
讓我們在所有欄位中輸入一些資料。
現在點選提交按鈕。
正如您所看到的,資訊已儲存,現在讓我們開啟 `Data.txt` 檔案,您將看到資料已寫入檔案。
追加資料到現有檔案
為了將資料寫入文字檔案,我們使用了 `WriteAllText`。如果您再次呼叫此方法並傳遞相同的檔名,它將完全覆蓋現有檔案。但在大多數情況下,我們通常希望將新資料新增到檔案的末尾,所以我們可以使用 `File` 物件的 `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 `https://: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 `https://:36905/ReadData`,您將看到以下網頁。