• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

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

    發布: 2008-10-13 12:01 | 作者: 不詳 | 來源: ProgramFan | 查看: 1982次 | 進入軟件測試論壇討論

    領測軟件測試網 一、簡介

      在現實世界中,人們經常希望能夠把某個文本文件的部分或全部內容保存到一個 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) 讀取整個文件的文本到字符串。如果是后者,你只需調用 ReadToEnd() 方法即可:
    ...
    '現在,讀取整個文件的文本到字符串
    Dim contents as String = objStreamReader.ReadToEnd()
    ...

      但如果是前者呢?在讀取下一行文本之前,須得先確認尚有文本可讀。為此,可以嘗試 Peek() 方法。Peek() 方法能夠返回指定流的下一個文本字符,卻不把該字符從流中刪掉;如果流中不再有文本字符可讀,則返回 -1。接下來,只要循環遍歷 Peek() 的返回值:loop while objStreamReader.Peek() <> -1 ,并且在循環內部使用 ReadLine() 方法讀取下一行文本就行了:

    While objStreamReader.Peek() <> -1
    someString = objStreamReader.ReadLine()
    '... do whatever else you need to do ...
    End While

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: asp ASP net NET Net 文本文件

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>