知识大全 在ASP.NET页中读取文本文件
Posted 文件
篇首语:今日长缨在手,何时缚住苍龙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在ASP.NET页中读取文本文件相关的知识,希望对你有一定的参考价值。
在ASP.NET页中读取文本文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一 简介 在现实世界中 人们经常希望能够把某个文本文件的部分或全部内容保存到一个 Web 网页变量中 在经典的 ASP 中 只要简单地使用 FileSystemObject 就能做到了 其实 在 ASPFAQs 中就有一个 FAQ 栏目专门讨论 FileSystemObject 可是在 ASP NET 中呢?FileSystemObject 当然还可以用 不过 经验表明这么做会严重影响服务器性能 因此 最好还是使用 NET 框架本身提供的类来读取文件 本文要介绍的是如何读取文本文件 今后我还会介绍如何使用 NET 框架类来读取 XML 文件1 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 类的效率稍微高那么一点点 因为使用它就不会因为类的实例化而烦恼 不过那只是猜测而已 (如果感兴趣 请不妨编程比较一下它们的性能 当你完成之后 请把结果告诉我!)
2 打开文件
打开文本文件最简单的途径是调用 OpenText 方法 它将按照 UTF (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\\root\\Rand txt) 最后 在 ASP NET 中的 Server MapPath 也和经典的 ASP 中相同 (为了更好地理解 Server MapPath 请别忘了阅读位于 //aspnet guysfromrolla /webtech/ s 的《Using Server MapPath》)
3 从文件中读取文本
现在 你面临两种选择 ( ) 读取文件当前位置的下一行文本到字符串 ( ) 读取整个文件的文本到字符串 如果是后者 你只需调用 ReadToEnd() 方法即可 现在 读取整个文件的文本到字符串 Dim contents as String = objStreamReader ReadToEnd()
但如果是前者呢?在读取下一行文本之前 须得先确认尚有文本可读 为此 可以尝试 Peek() 方法 Peek() 方法能够返回指定流的下一个文本字符 却不把该字符从流中删掉 如果流中不再有文本字符可读 则返回 接下来 只要循环遍历 Peek() 的返回值 loop while objStreamReader Peek() <> 并且在循环内部使用 ReadLine() 方法读取下一行文本就行了
While objStreamReader Peek() <> someString = objStreamReader ReadLine() do whatever else you need to do End While
切记!关闭 StreamReader 对象!
当你读完全部文本 并且不再操作此文件时 千万记住要使用 Close() 方法关闭 StreamReader 对象 以关闭此文件 如果你忘记这么做 则 ASP NET 操作进程将保持对此文件的只读锁定状态 因而当你换用其它帐号操作此文件时将会遇到错误信息 access denied (拒绝访问) 而且当你试图删除或覆蓋此文件时也将遇到同样的错误信息 只不过 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)
现在 读入整个文件的文本并保存到一个字符串里 Dim contents as String = objStreamReader ReadToEnd()
在一个 Web 控件中显示文本 lblRawOutput Text = contents
为了在便于浏览 最好把回车字符替换成 <br> lblNicerOutput Text = contents Replace(vbCrLf <br> )
objStreamReader Close() end sub </script> <b>Raw File Output</b><br /> <asp:label runat= server id= lblRawOutput /> <p> <b>Nicer Output</b><br /> <asp:label runat= server id= lblNicerOutput Font Name= Verdana />
二 结论
cha138/Article/program/net/201311/15807相关参考
java读取文本文件的方法有很多这个例子主要介绍最简单最常用的BufferedReader类 完整例子如下 packagenetchinaunixbloghzmtext; impor
Asp读取文本文件并显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <> &
publicclassReadSql publicstaticvoidreadsql(StringfilePath)throwsException Stringencoding=gbk; F
使用PHP读取文本(TXT)文件并分页显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!views
在用Delphi编程处理文本文件的时候如果要装载的文件比较大你可能会想在文件装载过程中提供一个装载进度的提示那么你就必须自己编写直接通过文件打开/读取函数来装载文件内容的函数 在自己编写文本文件
获取当前程序文件的路径也算是一个比较常见的需求比如我有一个文件connxml位于exe的同一目录在运行时需要从中读取一些设置信息 stringstr=ProcessGetCurrentProce
ASP.NET数据读取填充方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在中读取数据库中的
这篇文章介绍了aspnet初始化文本框的小例子有需要的朋友可以参考一下希望对你有所帮助 复制代码代码如下:privatevoidClearAllText(SystemWebUIControl
Asp.net把图片存入数据库和读取图片的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 网
在下面的映射表中加入gb和gbk就不会有乱码了源码在下面提供一位网友写的程序改了改 privatestaticvoidLoadCharsetMap() mapping=ne