Я думаю, что я немного запутался здесь, у меня есть простой текстовый файл с цифрами «5 10 2350» в нем. Как вы можете видеть ниже, я пытаюсь прочитать первое значение с помощью readDataOfLength, я думаю, что, возможно, где я запутался, я должен читать как символы, но тогда 10 - это 2 символа, а 2350 - 4. Может ли кто-нибудь указать m в правильное направление для их чтения.Чтение ints из NSData?
NSString *dataFile_IN = @"/Users/FGX/Documents/Xcode/syntax_FileIO/inData.txt";
NSFileHandle *inFile;
NSData *readBuffer;
int intBuffer;
int bufferSize = sizeof(int);
inFile = [NSFileHandle fileHandleForReadingAtPath:dataFile_IN];
if(inFile != nil) {
readBuffer = [inFile readDataOfLength:bufferSize];
[readBuffer getBytes: &intBuffer length: bufferSize];
NSLog(@"BUFFER: %d", intBuffer);
[inFile closeFile];
}
EDIT_001
Оба отличные ответы от Джаррет и Оле, вот что я пошел с. Один последний вопрос «METHOD 02» подбирает возврат каретки к пустой строке в нижней части текстового файла, возвращает его как подстроку, которая, в свою очередь, преобразуется в «0», я могу установить NSCharacterSet, чтобы остановить это, в настоящее время я просто добавила проверку длины строки.
NSInteger intFromFile;
NSScanner *scanner;
NSArray *subStrings;
NSString *eachString;
// METHOD 01 Output: 57 58 59
strBuffer = [NSString stringWithContentsOfFile:dataFile_IN encoding:NSUTF8StringEncoding error:&fileError];
scanner = [NSScanner scannerWithString:strBuffer];
while ([scanner scanInteger:&intFromFile]) NSLog(@"%d", intFromFile);
// METHOD 02 Output: 57 58 59 0
strBuffer = [NSString stringWithContentsOfFile:dataFile_IN encoding:NSUTF8StringEncoding error:&fileError];
subStrings = [strBuffer componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
for(eachString in subStrings) {
if ([eachString length] != 0) {
NSLog(@"{%@} %d", eachString, [eachString intValue]);
}
}
Гэри
Хммм .... Я не могу дублировать трейлинг 0 в методе 02 только с символами новой строки ... Я могу, однако, добавить я не цифру символ в конце. –
Возможно, что-то скрывалось в моем тестовом файле, который я собирал. Спасибо, что смотрели в любом случае. – fuzzygoat