有两种主要的文件处理类型:
创建空文本文件(有时被叫做“文本流”)有三种方法。
第一种方法是用 createtextfile 方法。 下面的示例示范了在 vbscript 中如何用这种方法来创建文本文件:
dim fso, f1set fso = createobject("scripting.filesystemobject")set f1 = fso.createtextfile("c:\testfile.txt", true)要在 jscript 中用这种方法,则使用下面的代码:
var fso, f1;fso = new activexobject("scripting.filesystemobject");f1 = fso.createtextfile("c:\\testfile.txt", true);创建文本文件的第二种方法是,使用 filesystemobject 对象的 opentextfile 方法,并设置 forwriting 标志。在 vbscript 中,代码就像下面的示例一样:
dim fso, tsconst forwriting = 2set fso = createobject("scripting. filesystemobject")set ts = fso.opentextfile("c:\test.txt", forwriting, true)要在 jscript 中使用这种方法来创建文本文件,则使用下面的代码:
var fso, ts;var forwriting= 2;fso = new activexobject("scripting.filesystemobject");ts = fso.opentextfile("c:\\test.txt", forwriting, true);创建文本文件的第三种方法是,使用 openastextstream 方法,并设置 forwriting 标志。要使用这种方法,在 vbscript 中使用下面的代码:
dim fso, f1, tsconst forwriting = 2set fso = createobject("scripting.filesystemobject")fso.createtextfile ("c:\test1.txt")set f1 = fso.getfile("c:\test1.txt")set ts = f1.openastextstream(forwriting, true)在 jscript 中,则使用下面示例中的代码:
var fso, f1, ts;var forwriting = 2;fso = new activexobject("scripting.filesystemobject");fso.createtextfile ("c:\\test1.txt");f1 = fso.getfile("c:\\test1.txt");ts = f1.openastextstream(forwriting, true);一旦创建了文本文件,使用下面的三个步骤向文件添加数据:
打开文本文件。
写入数据。
关闭文件。
要打开现有的文件,则使用 filesystemobject 对象的 opentextfile 方法或 file 对象的 openastextstream 方法。
要写数据到打开的文本文件,则根据下表所述任务使用 textstream 对象的 write、writeline 或 writeblanklines 方法。
| 任务 | 方法 |
|---|---|
| 向打开的文本文件写数据,不用后续一个新行字符。 | write |
| 向打开的文本文件写数据,后续一个新行字符。 | writeline |
| 向打开的文本文件写一个或多个空白行。 | writeblanklines |
要关闭一个打开的文件,则使用 textstream 对象的 close 方法。
注意 新行字符包含一个或几个字符(取决于操作系统),以把光标移动到下一行的开始位置(回车/换行)。注意某些字符串末尾可能已经有这个非打印字符了。
下面的 vbscript 例子示范了如何打开文件,和同时使用三种写方法来向文件添加数据,然后关闭文件:
sub createfile()dim fso, tfset fso = createobject("scripting.filesystemobject")set tf = fso.createtextfile("c:\testfile.txt", true)'写一行,并且带有新行字符。tf.writeline("testing 1, 2, 3.")'向文件写三个新行字符。tf.writeblanklines(3)'写一行。tf.write ("this is a test.")tf.closeend sub
这个示例示范了在 jscript 中如何使用这三个方法:
function createfile(){var fso, tf;fso = new activexobject("scripting.filesystemobject");tf = fso.createtextfile("c:\\testfile.txt", true);//写一行,并且带有新行字符。tf.writeline("testing 1, 2, 3.") ;//向文件写三个新行字符。tf.writeblanklines(3) ;//写一行。tf.write ("this is a test.");tf.close();}
要从文本文件读取数据,则使用 textstream 对象的 read、readline 或 readall 方法。下表描述了不同的任务应使用哪种方法。
| 任务 | 方法 |
|---|---|
| 从文件读取指定数量的字符。 | read |
| 读取一整行(一直到但不包括新行字符)。 | readline |
| 读取文本文件的整个内容。 | readall |
如果使用 read 或 readline 方法,并且想跳过数据的特殊部分,则使用 skip 或 skipline 方法。read 方法的结果文本存在一个字符串中,该字符串可以显示在一个控件中,也可以用字符串函数(如 left、right 和 mid)来分析,连接等等。
下面的 vbscript 示例示范了如何打开文件,和如何写数据到文件中并从文件读取数据:
sub readfilesdim fso, f1, ts, sconst forreading = 1set fso = createobject("scripting.filesystemobject")set f1 = fso.createtextfile("c:\testfile.txt", true)'写一行。response.write "writing file <br>"f1.writeline "hello world"f1.writeblanklines(1)f1.close'读取文件的内容。response.write "reading file <br>"set ts = fso.opentextfile("c:\testfile.txt", forreading)s = ts.readlineresponse.write "file contents = '" & s & "'"ts.closeend sub
下面的代码示范了在 jscript 中做同样的事:
function readfiles(){var fso, f1, ts, s;var forreading = 1;fso = new activexobject("scripting.filesystemobject");f1 = fso.createtextfile("c:\\testfile.txt", true);//写一行。response.write("writing file <br>");f1.writeline("hello world");f1.writeblanklines(1);f1.close();//读取文件的内容。response.write("reading file <br>");ts = fso.opentextfile("c:\\testfile.txt", forreading);s = ts.readline();response.write("file contents = '" + s + "'");ts.close();}
fso 对象模式各有两种方法移动、复制和删除文件,如下表所述。
| 任务 | 方法 |
|---|---|
| 移动文件 | file.move 或 filesystemobject.movefile |
| 复制文件 | file.copy 或 filesystemobject.copyfile |
| 删除文件 | file.delete 或 filesystemobject.deletefile |
下面的 vbscript 示例,在驱动器 c 的根目录中创建一个文本文件,向其中写一些信息,然后把它移动到 \tmp 目录中,并在 \temp 中做一个备份,最后把它们从两个目录中删掉。
要运行下面的示例,需要先在驱动器 c 的根目录中创建 \tmp 和 \temp 目录:
sub manipfilesdim fso, f1, f2, sset fso = createobject("scripting.filesystemobject")set f1 = fso.createtextfile("c:\testfile.txt", true)response.write "writing file <br>"'写一行。f1.write ("this is a test.")'关闭文件。f1.closeresponse.write "moving file to c:\tmp <br>"'获取c的根目录(c:\)中的文件的句柄。set f2 = fso.getfile("c:\testfile.txt")'把文件移动到\tmp目录。f2.move ("c:\tmp\testfile.txt")response.write "copying file to c:\temp <br>"'把文件复制到\temp目录。f2.copy ("c:\temp\testfile.txt")response.write "deleting files <br>"'获得文件当前位置的句柄。set f2 = fso.getfile("c:\tmp\testfile.txt")set f3 = fso.getfile("c:\temp\testfile.txt")'删除文件。f2.deletef3.deleteresponse.write "all done!"end sub
下面的代码示范了在 jscript 中做同样的事:
function manipfiles(){var fso, f1, f2, s;fso = new activexobject("scripting.filesystemobject");f1 = fso.createtextfile("c:\\testfile.txt", true);response.write("writing file <br>");//写一行。f1.write("this is a test.");//关闭文件。f1.close();response.write("moving file to c:\\tmp <br>");//获取c的根目录(c:\)中的文件的句柄。f2 = fso.getfile("c:\\testfile.txt");//把文件移动到\tmp目录。f2.move ("c:\\tmp\\testfile.txt");response.write("copying file to c:\\temp <br>");//把文件复制到\temp目录。f2.copy ("c:\\temp\\testfile.txt");response.write("deleting files <br>");//获得文件当前位置的句柄。f2 = fso.getfile("c:\\tmp\\testfile.txt");f3 = fso.getfile("c:\\temp\\testfile.txt");//删除文件。f2.delete();f3.delete();response.write("all done!");}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器