It seemed like this would be both optimal and more proper if someone ever decided to implement an Input that used a socket or some such. I can change it to just call readBytes if you think it's an important improvement. I wasn't really sure what the difference is so I went for a stock readFully implementation.