Mobil Programlama

iOS

DERS PROGRAMI
iOS 201 Ders Programı

Dosya İçinde Konumlanma

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

 

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.