Summary of opening and closing streams
- Last Updated: January 26, 2026
- 1 minute read
- OpenEdge
- Version 12.8
- Documentation
The following table describes how you establish, open, use, and close default streams and streams you name.
| Action | Unnamed streams | Named streams |
|---|---|---|
| Establish the stream | By default, each procedure gets one unnamed input stream and one unnamed output stream. | You define the stream explicitly by using one of these
statements: DEFINE STREAM, DEFINE NEW SHARED STREAM, DEFINE SHARED
STREAM, DEFINE NEW GLOBAL SHARED STREAM.
For more information, see the DEFINE STREAM statement. |
| Open the stream | Automatically opened, using the output destination to
which the calling procedure's unnamed stream is directed and the input source from
which the calling procedure's input is read. You can also explicitly name a destination or source by the using OUTPUT TO statement or the INPUT FROM statement. |
You open the stream explicitly by using:
|
| Use the stream | All data-handling statements use the stream by default. | Use the name or the handle of the opened stream in the data-handling statement that will use the stream. |
| Close the stream | Automatically closed at the end of the procedure that
opened it. You can also explicitly close it with the OUTPUT CLOSE statement or the INPUT CLOSE statement. |
Local streams are automatically closed at the end of
the procedure. Shared streams are automatically closed when the procedure that defined
the stream as NEW ends. Global streams are closed at
the end of the OpenEdge session. You can also explicitly close named streams by using
the INPUT CLOSE or OUTPUT
CLOSE statement or by opening the stream to a new destination or from a new
source. |
Initially, a default input stream has as its source the most recent source specified in the calling procedure or, if there is no calling procedure, the terminal. The default output stream has as its destination the most recent destination specified in the calling procedure or, if there is no calling procedure, the terminal. If you are running a procedure in batch or background, you must explicitly indicate a source and/or destination.
When an unnamed stream is closed (either automatically or explicitly), it is automatically redirected to its previous destination (the destination of the procedure it is in). If the stream is not in a procedure, the stream is redirected to or from the terminal.
When you close a named stream, you can no longer use that stream until it is reopened. When you close an input stream associated with a file and then reopen that stream to the same file, input starts from the beginning of the file.