bigBuffer[bytesRead]='\0';
nsInputStream& operator >> (nsInputStream& s, nsPersistentFileDescriptor& d)// reads the data from a file//----------------------------------------------------------------------------------------{    char bigBuffer[MAX_PERSISTENT_DATA_SIZE + 1];    // The first 8 bytes of the data should be a hex version of the data size to follow.    PRInt32 bytesRead = 8;    bytesRead = s.read(bigBuffer, bytesRead);    if (bytesRead != 8)        return s;    bigBuffer[8] = '\0';    sscanf(bigBuffer, "%x", (PRUint32*)&bytesRead);    if (bytesRead > MAX_PERSISTENT_DATA_SIZE)    {        // Try to tolerate encoded values with no length header        bytesRead = 8 + s.read(bigBuffer + 8, MAX_PERSISTENT_DATA_SIZE - 8);    }    else    {        // Now we know how many bytes to read, do it.        bytesRead = s.read(bigBuffer, bytesRead);    }    d.SetData(bigBuffer, bytesRead);    return s;}