For the tablespace name, file name and file size, you can query DBA_DATA_FILES.
For the rest of the information, visit my Web site. In the scripts section is a script titled ts_map.sql which shows you how I queried DBA_EXTENTS and DBA_FREE_SPACE to come up with a physical map of the segments allocated in a tablespace. From this script, you should be able to easily determine how to determine the free space for each datafile. The used space is the total space minus the free space.