Re: 'nuther dumb question
Re: 'nuther dumb question
- Subject: Re: 'nuther dumb question
- From: Graham Cox <email@hidden>
- Date: Sat, 17 May 2014 13:30:07 +1000
On 17 May 2014, at 9:46 am, William Squires <email@hidden> wrote:
> Also, how come NSFileHandle doesn't have a -[NSFileHandle readFileWithSeparator:(NSString *)] method so one can read in only chunks of a file (of varying size, such as CSV records, or lines in a text file, separated by \n, as opposed to a fixed size, which could be accomplished with -[NSFileHandle readDataOfLength:(NSUInteger)] instead), instead of having to read in the whole thing?
Because that breaks an important abstraction of NSFileHandle, which is that it is not concerned with any aspect of what the data represents. That's a higher-level concept. To seek as far as a specific character or byte sequence requires that it actually examines the bytes one at a time, whereas the current API just reads fixe-sized chunks very efficiently.
You could certainly subclass NSFileHandle and create your own NSTextFileHandle and that could seek until a particular byte sequence, but the price you'll pay for that convenience is much poorer performance. It might be OK for your needs however. Essentially, Apple provide a lowest-common denominator class here that can be used in many different cases unchanged, and without having to understand anything about the data stream. Above that, it's up to you.
I agree that reading a file broken into lines is a common need, but it raises questions, like what text encoding is the file in? Typically, you'll have to read data in chunks, convert to a string, and maybe use NSScanner to locate a byte sequence.
--Graham
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden