PL/I has very rich I/O capabilities. Record I/O is the most efficient, and STREAM I/O is the least efficient. If you must use STREAM I/O, LIST-directed is the best form to use, followed by EDIT-directed, and lastly DATA-directed.
It is a good practice to:
DISPLAY [REPLY] is generally not suitable for production programs, and should be restricted to use only as a 'quick and dirty' debug aid.
See Enterprise Server Considerations to determine if I/O is suitable in mainframe subsystem environments.