What is the contract for openInput()? Isn't the caller expected to close it?