In general, databases are usually going to win. Check out FMDB for a nice set of iPhone database wrappers.
If speed is a very important factor then you're best off implementing it both ways and running tests against a realistic data set to see which is best for your particular use case.
Depends on how you read, how much you read, and whether you need to do any parsing/formatting/data conversion. If you just want a stream of sequential ascii characters, then the text file read probably has much less overhead. but ymmv.