base: File API

With ```watch```, ``read``` is called automatically behind the scenes, and without the error callback, there would be no way to catch these errors.