If you just want to extract the DDL required to create the same objects in another database, see DBMS_METADATA package. It's quite versatile, and easy to use.
If you want the data as well as the DDL, you should look at Datapump export/import. It will write the DDL and the data into a dump file, but you won't be able to read the file format.
If you really want a .SQL file, that has all the DDL and the data, I guess you could script something. Perhaps use DBMS_METADATA for the DDL, and then write some SQL that generates SQL for the DATA in a whole bunch of INSERT statements.
But, really, if you just want to be able to move an entire schema, including data, then Datapump is the answer. If you just want the DDL, in human readable form, use DBMS_METADATA.
If the requirement is for DDL and data, and it all to be human readable, then please explain your requirement in further detail.
Hope that helps.