Input and Output in The Racket Guide introduces Ports and I/O.
13.1 Ports
13.1.1 Encodings and Locales
13.1.2 Managing Ports
13.1.3 Port Buffers and Positions
13.1.4 Counting Positions, Lines, and Columns
13.1.5 File Ports
13.1.6 String Ports
13.1.7 Pipes
13.1.8 Structures as Ports
13.1.9 Custom Ports
13.1.10 More Port Constructors, Procedures, and Events
13.1.10.1 Port String and List Conversions
13.1.10.2 Creating Ports
13.1.10.3 Port Events
13.1.10.4 Copying Streams
13.2 Byte and String Input
13.3 Byte and String Output
13.4 Reading
13.5 Writing
13.6 Pretty Printing
13.6.1 Basic Pretty-Print Options
13.6.2 Per-Symbol Special Printing
13.6.3 Line-Output Hook
13.6.4 Value Output Hook
13.6.5 Additional Custom-Output Support
13.7 Reader Extension
13.7.1 Readtables
13.7.2 Reader-Extension Procedures
13.7.3 Special Comments
13.8 Printer Extension
13.9 Serialization
13.10 Fast-Load Serialization
13.11 Cryptographic Hashing