VBScript OpenAsTextStream Method
last modified April 9, 2025
The OpenAsTextStream
method in VBScript is part of the
FileSystemObject
. It opens a specified file and returns a
TextStream
object. This allows reading from, writing to, or
appending to the file. The method provides flexible file access modes for
different operations.
OpenAsTextStream
is commonly used for text file manipulation. It
supports three access modes: reading, writing, and appending. This tutorial
covers OpenAsTextStream
with practical examples to demonstrate its
usage in various scenarios.
OpenAsTextStream Method Overview
The OpenAsTextStream
method takes two optional parameters: IOMode
and Format. IOMode specifies how the file will be accessed (read, write, or
append). Format defines the file's character encoding (ASCII or Unicode).
Key features include sequential file access and text manipulation capabilities.
The method requires the file to exist unless opening in write mode. It returns a
TextStream
object for file operations. Understanding this method
helps create robust file handling scripts.
Basic File Reading
This example demonstrates reading a file using OpenAsTextStream
.
It shows how to open a file in read mode and display its contents. The script
reads the entire file line by line and outputs each line.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\temp\sample.txt") Set ts = file.OpenAsTextStream(1) ' 1 = ForReading Do Until ts.AtEndOfStream WScript.Echo ts.ReadLine Loop ts.Close Set fso = Nothing
The script creates a FileSystemObject
and gets a reference to the
file. It opens the file in read mode (1) and reads until the end. Each line is
output using WScript.Echo
. Finally, it closes the TextStream and
cleans up objects.
Writing to a File
This example shows how to write to a file using OpenAsTextStream
.
It demonstrates opening a file in write mode (2) and writing new content. The
existing file content will be overwritten when using write mode.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\temp\output.txt") Set ts = file.OpenAsTextStream(2) ' 2 = ForWriting ts.WriteLine "This is line 1" ts.WriteLine "This is line 2" ts.Write "This is line 3 without newline" ts.Close Set fso = Nothing
The script opens the file in write mode (2) and writes three lines of text. The
WriteLine
method adds a newline after each string, while
Write
does not. The file will contain exactly what was written,
replacing any previous content.
Appending to a File
This example demonstrates appending content to an existing file. It shows how to open a file in append mode (8) and add new content. Unlike write mode, append mode preserves existing file content.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\temp\log.txt") Set ts = file.OpenAsTextStream(8) ' 8 = ForAppending ts.WriteLine "New log entry: " & Now() ts.Close Set fso = Nothing
The script opens the log file in append mode (8) and adds a new entry with the current date and time. Each time the script runs, a new line is added to the file. This is useful for log files or data collection scenarios.
Reading with Unicode Encoding
This example shows how to specify Unicode encoding when opening a file. The
second parameter of OpenAsTextStream
controls the text format. Use
-1 for Unicode or 0 for ASCII (default).
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\temp\unicode_file.txt") Set ts = file.OpenAsTextStream(1, -1) ' 1 = ForReading, -1 = Unicode content = ts.ReadAll WScript.Echo content ts.Close Set fso = Nothing
The script opens a Unicode text file in read mode with Unicode format specified.
The ReadAll
method reads the entire file content at once. This
approach is useful when working with files containing non-ASCII characters or
special symbols.
Combining Read and Write Operations
This example demonstrates more complex file operations by combining reading and writing. It shows how to read a file, process its content, and write modified data back. The script uses separate TextStream objects for input and output.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\temp\data.txt") ' Read original content Set inputTS = file.OpenAsTextStream(1) ' 1 = ForReading content = inputTS.ReadAll inputTS.Close ' Process content processedContent = UCase(content) ' Write processed content Set outputTS = file.OpenAsTextStream(2) ' 2 = ForWriting outputTS.Write processedContent outputTS.Close Set fso = Nothing
The script first reads the entire file content, converts it to uppercase, then writes it back. Note that two separate TextStream objects are used for reading and writing. This pattern is common for file transformation tasks.
Source
FileSystemObject Documentation
In this article, we have explored the OpenAsTextStream
method in
VBScript, covering its usage and practical applications. From basic file reading
to complex read-write operations, these examples demonstrate flexible file
handling. With this knowledge, you can enhance your scripts with robust file
processing capabilities.
Author
List all VBScript tutorials.