NSFileHandle nesnesi ya da sınıfı dosya içindeki o andaki pozisyonu gösteren bir gösterge (işaretçi, ing. Pointer) içerir. Bu gösterge offset adını alır. Dosya açılınca offset’in değeri 0’dır. (Dosyanın başı). Normal olarak her yazma ya da okuma işlemi dosyanın başından başlar. Ancak doğal olarak bazı işlemlerde başka bir konumdan başlamak da gerekebilir. Örneğin mevcut bir dosyaya veri eklemek için sondan başlamak durumu gibi. Bu durumda gösterge istenilen konuma gönderilebilmelidir. Örneğin göstergeyi dosyanın sonuna göndermek için seekToEndOfFile metodu kullanılır.
Ayrıca offset’i belirli bir konuma getirmek için seekToFileOffset metodu kullanılır. Offset’in o anda nerede bulunduğunu sorgulamak için de offsetInFile metodu kullanılabilir.
Büyük boyutlu dosyalarda offset unsigned long, long türü bir değişkende saklanmalıdır.
dosya = [NSFileHandle fileHandleForUpdatingAtPath: @"/xx/dosya1.txt"];
if (dosya == nil)
NSLog(@"DOSYA AÇILAMADI");
NSLog (@"Offset = %llu", [dosya offsetInFile]);
[dosya seekToEndOfFile];
NSLog (@"Offset = %llu", [dosya offsetInFile]);
[dosya seekToFileOffset: 30];
NSLog (@"Offset = %llu", [dosya offsetInFile]);
[dosya closeFile];
Yukarıdaki örnekte /xx/dosya1.txt adlı dosya güncelleme (hem okuma hem de yazma) modunda açılmaktadır. Sonra dosya göstergesinin mevcut konumu yazdırılmaktadır.
Bu işlemden sonra dosya göstergesi dosya sonuna gönderilmekte ve bu konum da yazdırılmaktadır.
Son olarak gösterge 30. byte üzerine getirilmekte ve bu konum da yazdırılmaktadır.