Just for the record/discussion:
That is of course fine if one knows how the file has been created.
However, if the user selects a text file (extension can't be trusted to reflect the contents, so there's no point in checking that), the process runs away with ReadObject; with ReadB4XObject it throws an exception, which is the desired behaviour.
Unless I'm missing something, ReadB4XObject also throws an error if a file was created with WriteObject, so it would still not be possible to e.g. first try with ReadB4XObject and, if that fails, with ReadObject, as it would let the process run away on text files (probably others too, I didn't test that). But if that's just how it is, now I know