Input and Output in The Racket Guide introduces Ports and I/O.
12.1 Ports
12.1.1 Encodings and Locales
12.1.2 Managing Ports
12.1.3 Port Buffers and Positions
12.1.4 Counting Positions, Lines, and Columns
12.1.5 File Ports
12.1.6 String Ports
12.1.7 Pipes
12.1.8 Structures as Ports
12.1.9 Custom Ports
12.1.10 More Port Constructors, Procedures, and Events
12.1.10.1 Port String and List Conversions
12.1.10.2 Creating Ports
12.1.10.3 Port Events
12.1.10.4 Copying Streams
12.2 Byte and String Input
12.3 Byte and String Output
12.4 Reading
12.5 Writing
12.6 Pretty Printing
12.6.1 Basic Pretty-Print Options
12.6.2 Per-Symbol Special Printing
12.6.3 Line-Output Hook
12.6.4 Value Output Hook
12.6.5 Additional Custom-Output Support
12.7 Reader Extension
12.7.1 Readtables
12.7.2 Reader-Extension Procedures
12.7.3 Special Comments
12.8 Printer Extension
12.9 Serialization
12.10 Fast-Load Serialization