程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在ASP.NET頁中讀取文本文件

在ASP.NET頁中讀取文本文件

編輯:關於ASP.NET

簡介

在現實世界中,人們經常希望能夠把某個文本文件的部分或全部內容保存到一個 Web 網頁變量中。在經典的 ASP 中,只要簡單地使用 FileSystemObject 就能做到了。其實,在 ASPFAQs.com 中就有一個 FAQ 欄目專門討論 FileSystemObject 。

可是在 ASP.NET 中呢?FileSystemObject 當然還可以用,不過,經驗表明這麼做會嚴重影響服務器性能。因此,最好還是使用 .NET 框架本身提供的類來讀取文件。本文要介紹的是如何讀取文本文件;今後我還會介紹如何使用 .NET 框架類來讀取 XML 文件。

File ? FileInfo ?

在 .NET 框架中,有許多方法可以打開文本文件。有趣的是,所有這麼方法集中在 System.IO 名字空間的兩個類中。它們是 File 類和 FileInfo 類。兩個類之間的區別很小。File 類的方法全都是共享方法(靜態方法),而FileInfo 類有例外。共享方法就是不用創建類實例也能調用的方法。假設要用這兩個類刪除文件,則可以這麼做:

'使用 File 類
File.Delete(fileName)

'使用 FileInfo 類
Dim fInfo as FileInfo
fInfo = new FileInfo(fileName)
fInfo.Delete()

請注意,File 類的 Delete 方法只帶一個參數,即待刪的文件,而且不必對 File 類進行實例化就能調用。再來看 FileInfo 類,它的 Delete 方法不帶參數,因為文件名在 FileInfo 類實例的構造器中指定。

就我個人而言,我偏愛 File ,因此就拿它來作示范吧。我敢打賭 File 類的效率稍微高那麼一點點,因為使用它就不會因為類的實例化而煩惱;不過那只是猜測而已。(如果感興趣,請不妨編程比較一下它們的性能。當你完成之後,請把結果告訴我!)

打開文件

打開文本文件最簡單的途徑是調用 OpenText 方法,它將按照 UTF-8 (ASCII) 格式打開文本文件。你還可以選擇通用的 Open 方法,以便指定文件操作模式 (create/open/append/truncate) 、操作權限 (read/write/read-write) 和文件共享權限了;可既然你只需要讀取文本文件,那麼相對簡單的 OpenText 方法也就足以應付了。

OpenText 方法返回一個 StreamReader 對象,只要訪問該對象就能從剛才打開的文件中讀取文本內容。因此,打開文件所用的 ASP.NET 代碼大致如下:

<%@ Import Namespace="System.IO" %>
<script language="vb" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
'以“只讀”方式打開文件
Dim FILENAME as String = Server.MapPath("Rand.txt")

'創建 StreamReader 類實例,准備讀取文件內容
Dim objStreamReader as StreamReader
objStreamReader = File.OpenText(FILENAME)
...

請注意,代碼的第一行導入了 System.IO 命名空間。這是因為 File 類就屬於此命名空間。還有,在 Page_Load 事件處理程序中,創建了一個字符串 FILENAME ,其內容就是欲打開的文件的物理路徑(比如 C:\Inetpub\wwwroot\Rand.txt)。最後,在 ASP.NET 中的 Server.MapPath 也和經典的 ASP 中相同 (為了更好地理解 Server.MapPath ,請別忘了閱讀位於 http://aspnet.4guysfromrolla.com/webtech/121799-1.shtml 的《Using Server.MapPath》)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved