2014-11-14 10 views
6

Ich suche Swift Dateieingabe/Ausgabe für eine kurze Präsentation an meiner Universität nächste Woche. Ich habe wirklich nicht viel darüber gefunden.Apple Swift File IO Operationen

Hier sind die Operationen gefunden:

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 

Gibt es einen Operations, mit denen kann ich einzelne Zeichen lesen?
Kann ich Text an eine Datei anhängen?
Kann ich nur String schreiben/lesen?
Gibt es noch andere Dateioperationen, da muss ich das wissen?

+1

Ihre Frage ist ein bisschen breit, aber Sie sollten sich NSInputStream und NSOutputStream ansehen. –

+1

... gibt es auch NSFileHandle ... –

Antwort

2

Gibt es eine Operation, mit der ich einzelne Zeichen lesen kann?

Swift-Code kann jedes des üblichen Frameworks (Foundation, Kakao, Cocoa Touch, etc.) verwenden, und das allein gibt Ihnen eine Vielzahl von Möglichkeiten, um Dateien zu lesen und zu schreiben, in der Regel auf einem höheren Niveau als ein Zeichen zu einer Zeit. Wenn Sie Datei-I/O niedrigerer Ebene möchten, können Sie NSInputStream und verwenden, wie Martin R. vorschlägt, oder Sie können NSData verwenden.

Natürlich können Sie auch alle üblichen C stdio Funktionen verwenden, wenn Sie wirklich mit Ihren Dateien schmutzig werden wollen. Aber wenn Sie mit Objekten arbeiten, macht es normalerweise keinen Sinn, auf einem niedrigen Level zu arbeiten.

+1

Sehr hilfreich Ihre (und Martin R) Antwort, ich brauche Zeit, um die Klassen zu analysieren – Cheatyx