filechannel position & added exceptions to read, write, and close