String File::ReadFileAsString() { unsigned long length = Length(); unsigned char* buffer = new unsigned char[length + 1]; InStream* in = OpenInputStream(false); PASSERT(in->IsOpen(), String("cannot open ") + Path() + " in text read mode"); PASSERT(in->Read(buffer, Length()) != InStream::InStreamFileError, String("cannot read ") + Path()); delete in; buffer[length] = '\0'; PBase::String string = PBase::String((char*) buffer); delete[] buffer; return string; }