Whatever data structure you're using to store the world in memory can be used as a template for writing and reading from disk. The procedural portion of your game will fill these data structures the first time, if no data is available from disk. Then, when you're ready to unload an area from memory, write it to disk as it has been generated or modified.
Whenever you're ready to load a new area into memory, first check to see if it's been generated before and saved to disk. If it has, load it from disk instead of from your procedural generation algorithms.
Typically this would be done with chunks of terrain. You can either save each chunk to it's own file, or create a more complex on disk structure that contains data in a single file with a look-up table. There are other questions about good ways to save your data to disk.