2014-11-14 19 views
6

Gelecek hafta üniversitemde kısa bir sunum için Swift dosya giriş/çıkış işlemlerini arıyorum. Gerçekten bu konuda fazla bir şey bulamadım.Apple Swift Dosya IO İşlemleri

İşte buldum Operasyon şunlardır:

let location = "/Users/test/test.txt" 
var str = "Hello, playground" 

//write 
str.writeToFile(location, atomically: false, encoding: NSUTF8StringEncoding, error: nil) 
//read 
let filecontent = String(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil) 
//binary read 
let test = NSData(contentsOfFile: location) 
//if file exists 
NSFileManager().fileExistsAtPath(location) 
//find Files in the App Bundle with suffix test and prefix txt 
var path= NSBundle.mainBundle().pathForResource("test", ofType: "txt") 
//path for dynamic user names 
if let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] { 
let path = dirs[0].stringByAppendingPathComponent("file.txt") 
//printout: /Users/test/Documents/file.txt 

hangi Bekarım karakterleri okuyabilir orada Operasyon mı?
Dosyaya Metin ekleyebilir miyim?
Sadece yazabilir/okuyabilir String?
Başka herhangi bir Dosya İşlemi var mı, bilmem gerekenler var mı?

+1

Sorunuz biraz geniştir, ancak NSInputStream ve NSOutputStream'e bir göz atmalısınız. –

+1

... Ayrıca NSFileHandle ... –

cevap

2

Tek karakterleri okuyabildiğim bir İşlem var mı?

Swift kodu zamanki çerçeveler (Vakfı, kakao, kakao Dokunmatik vs.) herhangi birini kullanabilirsiniz, ve yalnız bu seni genellikle bir karakter daha yüksek bir seviyede, dosyalarını okumak ve yazmak için pek çok yol sunar zamanında. Alt düzey dosya G/Ç'sini istiyorsanız, Martin R. önerdiği gibi NSInputStream ve NSOutputStream'u kullanabilir veya NSData'u kullanabilirsiniz.

Elbette dosyalarınızla gerçekten aşağı inmek ve kirletmek istiyorsanız, her zamanki C stdio işlevlerini de kullanabilirsiniz. Fakat nesneler üzerinde çalışırken, genellikle böyle düşük bir seviyede çalışmak mantıklı gelmez.

+1

Çok yararlı (ve Martin R) cevabınız, dersleri analiz etmek için zamana ihtiyacım var – Cheatyx