iOS 101Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Dosya İçinde Konumlanma

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 12.05.2016 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : obj-c NSFileHandle dosya konumlama

 

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.