你的位置:睿鑫网络 >> 编程 >> web开发 >> ASP.NET >> 详细内容 在线投稿

在ASP.NET页中读取文本文件

排行榜 收藏 打印 发给朋友 举报 来源: 网络   发布者:未知
热度16票  浏览40次 时间:2010年1月15日 10:55

)yi#j v+ed B1~0简介睿鑫网络^A;x^}/ay

FXhTN'e4c2X0在现实世界中,人们经常希望能够把某个文本文件的部分或全部内容保存到一个 Web 网页变量中。在经典的 ASP 中,只要简单地使用 FileSystemObject 就能做到了。其实,在 ASPFAQs.com 中就有一个 FAQ 栏目专门讨论 FileSystemObject 。睿鑫网络0r)B,h:h0}

]%FS| `\0可是在 ASP.NET 中呢?FileSystemObject 当然还可以用,不过,经验表明这么做会严重影响服务器性能。因此,最好还是使用 .NET 框架本身提供的类来读取文件。本文要介绍的是如何读取文本文件;今后我还会介绍如何使用 .NET 框架类来读取 XML 文件。睿鑫网络3A'{8}fn$V

睿鑫网络6f{(cGA8O:@|sY.`d

File ? FileInfo ?

E \pr2T7S4l0Gq0

at(U#g$h W1`[+w+V0在 .NET 框架中,有许多方法可以打开文本文件。有趣的是,所有这么方法集中在 System.IO 名字空间的两个类中。它们是 File 类和 FileInfo 类。两个类之间的区别很小。File 类的方法全都是共享方法(静态方法),而FileInfo 类有例外。共享方法就是不用创建类实例也能调用的方法。假设要用这两个类删除文件,则可以这么做:

yC Wed6n g)y0

A"}l5_SZ/N]#mE0'使用 File 类

e(_ p y[#V0

1Z:V4V/?%aY:F*P[0File.Delete(fileName)

;wog?.mQ0

f)f-a6z"R'l @+F0'使用 FileInfo 类睿鑫网络L\*? x3RW{-Q U

+X3qe h(b3h0q2LK0Dim fInfo as FileInfo睿鑫网络tX8r'_P/}4n{u

睿鑫网络0@co*F$Y0zW?

fInfo = new FileInfo(fileName)

JdhQ;ta0

4Naf&hw,Wu{hn0fInfo.Delete()睿鑫网络5{!O?j1d

uG-bh-['T7d0请注意,File 类的 Delete 方法只带一个参数,即待删的文件,而且不必对 File 类进行实例化就能调用。再来看 FileInfo 类,它的 Delete 方法不带参数,因为文件名在 FileInfo 类实例的构造器中指定。睿鑫网络8x `Va}U s` \

4M"p.LLI&Ddp0就我个人而言,我偏爱 File ,因此就拿它来作示范吧。我敢打赌 File 类的效率稍微高那么一点点,因为使用它就不会因为类的实例化而烦恼;不过那只是猜测而已。(如果感兴趣,请不妨编程比较一下它们的性能。当你完成之后,请把结果告诉我!)

%}Pi3N9s US%y0

Lv]"M[i9|0打开文件

Z.[ c ?U1_%Gx2W0 睿鑫网络8eBc.z4@4{

打开文本文件最简单的途径是调用 OpenText 方法,它将按照 UTF-8 (ASCII) 格式打开文本文件。你还可以选择通用的 Open 方法,以便指定文件操作模式 (create/open/append/truncate) 、操作权限 (read/write/read-write) 和文件共享权限了;可既然你只需要读取文本文件,那么相对简单的 OpenText 方法也就足以应付了。睿鑫网络3u;z"MAJ1lO

睿鑫网络9e d%r.]eQ

OpenText 方法返回一个 StreamReader 对象,只要访问该对象就能从刚才打开的文件中读取文本内容。因此,打开文件所用的 ASP.NET 代码大致如下:

Ig8L2],t8]'E0 睿鑫网络4xghdE+az8l

<%@ Import Namespace="System.IO" %>睿鑫网络~TG ]I g0x

Wn8Gjj e5Y0睿鑫网络S[Wg5R;v:?T#C

si7bcQO0Raw File Output
*s3N1C+z-n(@j0睿鑫网络5rS.X ?u

bv3R)H,Lv"J9c0

gp!PpD9}0 睿鑫网络&?\T7D{%`#|

睿鑫网络&Ca+{,M9_o S`"F.u

&`Z-R"s*\t0B0 睿鑫网络LhFe-a;T R1pw/Q

Nicer Output睿鑫网络rwZ,hD/s
睿鑫网络(]"i#x4s.L:R1P'P

睿鑫网络 TQoM{

ry]yc.E)n!kjA0 睿鑫网络O1tyir~p9P,^C

结论

QJ&G'jO0 睿鑫网络3cF~:@@D%^tI

本文附带了一个示范程序的源代码。该程序简单地打开一个硬编码的(hard-coded)文本文件,然后把其中的所有文本一次性保存到指定字符串里,再把字符串的值显示在服务器端的一个 Web 控件 label 中。睿鑫网络]^\*D+L|N{!U6B

W9A#}1GY~0你看,通过 ASP.NET 页面读取文本文件内容实在不难。虽然在语法上和经典 ASP 的 FileSystemObject 对象有些差异,但是学起来真的很容易。为了更好的掌握如何在 ASP.NET 中读写文件,请务必阅读 《ASP.NET: Tips, Tutorials, and Code》一书 (样本见 http://www.4guysfromrolla.com/webtech/chapters/ASPNET2 )!睿鑫网络)P Qp2tD9L'lL J

顶:0 踩:1
对本文中的事件或人物打分:
当前平均分:1 (1次打分)
对本篇资讯内容的质量打分:
当前平均分:-1.5 (6次打分)
【已经有8人表态】
上一篇 下一篇

网络资源