Это, безусловно, возможно;это просто зависит от точного формата текстового файла.
Чтение содержимого текстового файла легко:
// If you want to handle an error, don't pass NULL to the following code, but rather an NSError pointer.
NSString *contents = [NSString stringWithContentsOfFile:@"/path/to/file" encoding:NSUTF8StringEncoding error:NULL];
Это создает автоматически выпущенную строку, содержащую весь файл.Если весь файл содержит целое число, вы можете просто написать это:
NSInteger integer = [contents integerValue];
Если файл разбит на несколько строк (каждая строка содержит одно целое число), вам придется разделить его:
NSArray *lines = [contents componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
for (NSString *line in lines) {
NSInteger currentInteger = [line integerValue];
// Do something with the integer.
}
В целом, это очень просто.
Записать обратно в файл так же просто.После того, как вы манипулировали тем, что хотели, обратно в строку, вы можете просто использовать это:
NSString *newContents = ...; // New string.
[newContents writeToFile:@"/path/to/file" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
Вы можете использовать это для записи в строку.Конечно, вы можете играть с настройками.Установка atomically
в YES
заставляет его сначала записывать в тестовый файл, проверять его, а затем копировать для замены старого файла (это гарантирует, что в случае сбоя вы не получите поврежденный файл).Если вы хотите, вы можете использовать другую кодировку (хотя NSUTF8StringEncoding
настоятельно рекомендуется), и если вы хотите отлавливать ошибки (что, по сути, следует), вы можете передать ссылку на NSError
методу.Это выглядело бы примерно так:
NSError *error = nil;
[newContents writeToFile:@"someFile.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error) {
// Some error has occurred. Handle it.
}
Для дальнейшего чтения обратитесь к Ссылка класса NSString .