Swift標準ライブラリのドキュメントはまだ見ていません。ここでは、Fileクラスや、ファイルを開いたり、読んだり、書き込んだりするためのインターフェースを持つ構造体を見つけることが期待されています。通常のすべてのものファイルIOを期待しています。それはありますか、それともNSFileManagerとそのilkに依存しますか?
Swift標準ライブラリには、この機能は含まれていません。標準ライブラリには、主にデータ構造、低レベルの型と呼び出し、およびセミビルトイン言語機能が含まれています。print()
とreadLine()
はスコープ外と見なされますが、近い将来にこれが変更されることはあまりありません。
ただし、FoundationにはファイルI/O呼び出しが含まれており、Swift CorelibsプロジェクトはFoundationを純粋に再実装するために懸命に取り組んでいますSwiftしたがって、どこでも利用可能ですSwiftです。すべての主要なオペレーティングシステムで使用可能なPOSIX I/O呼び出しは、Swiftでも使用できますが、使用するのがはるかに扱いにくいです。
これがファイルがiOSプロジェクトにある場合に行う方法です(これがあなたの状況であることを期待しています)。
var filePath = Bundle.main.path(forResource: "theFile", ofType: "txt")
var data = Data(contentsOf: URL(fileURLWithPath: filePath))
ファイルの内容を文字列に読み込むだけの場合は、Swift 2.0を使用する方法は次のとおりです。
do {
var dictionary = try String(contentsOfFile: "/usr/share/dict/words", encoding: NSUTF8StringEncoding)
} catch {
}
それ以外の場合は、上記のより複雑な方法が機能します。
多くの場合、アプリではファイルを保存するためにUIDocumentやその他のiCloudリンク方法を使用しますが、Swift blog AppleはCおよびPOSIXに基づく例を使用しています ファイルを保存するため、1つの例では次のようになります。
let fd = open("/tmp/scratch.txt", O_WRONLY|O_CREAT, 0o666)
if fd < 0 {
perror("could not open /tmp/scratch.txt")
} else {
let text = "Hello World"
write(fd, text, text.characters.count)
close(fd)
}
そしてそれは非常にSwiftのように見えますが、Cocoaフレームワークの上でこれを使いたいかどうかはわかりません。
この時点での唯一の有効な答えは次のとおりだと思います。Swiftベースのファイル/ IOライブラリがないため、今のところObjective-CベースのFoundationクラスを使用する必要があります。 @BryanChenが言うように、多分1年後に戻って、より具体的なSwift標準ライブラリを見つけます。