Optimize file loading

* Reduced number of canonical file queries
* Reduced number of byte array allocations
* Added buffering to streams