Это некорректно. Контракт метода read не говорит о том, что если считано меньше, чем запрошено, то это значит, что считать больше не удастся.