public function readFileHandle($file_handle)
    {
        if (!is_resource($file_handle))
            throw new \InvalidArgumentException("No file handle was provided");

        $contents = stream_get_contents($file_handle);
        $contents = Encoding::removeBOM($contents);

        return $this->readString($contents);
    }