public function read($length = 0, $asArray = false)
    {
        if ($asArray &&
            Number::isZero($length)) {

            return file($this->file);
        } elseif (Number::isPositive($length)) {
            $this->setHandle('r');

            return fread($this->handle, $length);
        } else {
            return Collection::implode($this->read(0, true), '');
        }
    }