【Swift】プロジェクト内のファイル読み込み

プロジェクトに含まれているリソースファイルにアクセスする方法を解説します。

アプリ内のファイルシステムへアクセスする方法を知りたい方は、【Swift】アプリ内のファイル読み書きを御覧ください。

スポンサーリンク

環境

この記事の情報は次のバージョンで動作確認しています。

【Xcode】11.4.1
【Swift】5.2
【iOS】13.4.1
【macOS】Catalina バージョン 10.15.4
スポンサーリンク

テキストファイルの準備

次のような国名と首都名をカンマ区切りで格納した"captal.txt"を準備します。

下図のようにファイルをドラッグしてProject Navigatorに追加します。

テキストファイルの準備

スポンサーリンク

サンプルソースと解説

プロジェクトに追加したcapital.txtファイルを読み込む部分のコードがこちらです。

①ファイルのパスを取得

Xcodeでビルドされたアプリでは「バンドル(Bundle)」と呼ばれるものが作成され、プロジェクトに追加したファイルはこのBundle内に配置されます。
Bundle.main.url()を使って、このBundle内に格納された対象ファイルのパスを取得します。
引数(forResouece)にはファイル名、引数(withExtension)に拡張子を指定します。

対象ファイルが存在しない場合はnilが戻りますので、サンプルではfatalError()で強制的にアプリをクラッシュさせています。

②ファイルの読み込み

特別なイニシャライザであるString(contentsOf :)を使用して、ファイルの内容を文字列にロードします。
このイニシャライザはロードできない場合にエラーを返す為、tryまたはtry?を使用して呼び出す必要があります。

fileContentsへの読み込みが成功したら、以降は通常の文字列として好きなように使用できます。

③ファイルの内容を分割

ファイルの内容を\n(改行)で分割して、配列に変換しています。

④1行づつ出力

1行づつ、読み込んだファイルを整形し出力しています。

あわせて読みたい記事

【Swift】プロジェクト内のJSONファイル読み込み
プロジェクトにリソースとしてバンドルされたJSONファイルを読み込む方法を解説します。 リソースファイルではなく、アプリ内のファイルシステムにあるファイルにアクセスしたい場合は、 も合わせてご覧下さい。
【Swift】アプリ内のファイル読み書き
(2022/01/18 更新) アプリ内のファイル読み書き方法を解説します。
【Swift】guard文の使い方
swiftのguard文の使い方を解説します。