Androidのアセットフォルダからファイルを読み込む方法【サンプルコード付きで解説】
このチュートリアルでは、Androidアプリでアセット(assets)フォルダ内のファイルを扱う方法を、実際に動作するサンプルコードとともに段階的に解説します。
なお、アセットフォルダはAPKにパッケージ化される読み取り専用の領域であるため、実行時に新しいファイルを書き込むことはできません。そこで本記事では、アセットフォルダに配置したテキストファイルを読み込み、画面に表示するまでの一連の手順を紹介します。
ステップ1:新規プロジェクトを作成する
Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。
ステップ2:レイアウトファイルを編集する
res/layout/activity_main.xml に以下のコードを追加します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btnReadFile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_above="@id/textView"
android:layout_marginBottom="15dp"
android:text="Read File"/>
<TextView
android:id="@+id/textView"
android:layout_centerInParent="true"
android:textSize="16sp"
android:textStyle="bold|italic"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>ステップ3:Assetsフォルダを作成してテキストファイルを追加する
次に、新しいAssetsフォルダを作成し、その中にテキストファイルを配置します。
テキストファイルを作成するには、対象フォルダ上で右クリックし、「New」→「File」を選択して、ファイル名(ここでは Quotes.txt)を入力します。
ステップ4:MainActivity.java を実装する
src/MainActivity.java に以下のコードを追加します。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
public class MainActivity extends AppCompatActivity {
TextView textView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
button = findViewById(R.id.btnReadFile);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = "";
InputStream inputStream = null;
try {
inputStream = getAssets().open("Quotes.txt");
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
string = new String(buffer);
} catch (IOException e) {
e.printStackTrace();
}
textView.setText(string);
}
});
}
}ステップ5:AndroidManifest.xml を確認する
androidManifest.xml には以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>アプリを実行して動作を確認する
それでは、アプリケーションを実行してみましょう。ここでは、実機のAndroidスマートフォンがパソコンに接続されているものとします。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルをいずれか開き、ツールバーの「Run」アイコンをクリックします。表示された選択肢から接続中のモバイルデバイスを選択すると、端末側に次のような画面が表示されます。

コードのポイント解説
getAssets()メソッドとは
getAssets() は、AssetManagerオブジェクトを取得するためのメソッドです。取得したAssetManagerの open() メソッドにファイル名を渡すことで、アセットフォルダ内のファイルへのInputStreamを取得できます。
ファイル読み込みの流れ
サンプルでは、available() でファイルサイズを取得し、そのサイズ分のバイト配列を確保したうえで read() によりデータを読み込み、new String(buffer) で文字列に変換しています。より堅牢な実装を目指す場合は、BufferedReaderやtry-with-resourcesを活用した読み込み方法も検討するとよいでしょう。
注意点
- アセットフォルダ内のファイル名は大文字・小文字が区別されます。
Quotes.txtとquotes.txtは別のファイルとして扱われるため、指定ミスには注意してください。 - 古いサポートライブラリ(android.support.v7)を使用している場合は、AndroidX移行後に
androidx.appcompat.app.AppCompatActivityへの置き換えが必要です。 - アセットフォルダは読み取り専用です。実行時にファイルを保存したい場合は、内部ストレージや外部ストレージを利用しましょう。
まとめ
本記事では、Android Studioでアセットフォルダを作成し、テキストファイルを読み込んでTextViewに表示するまでの一連の手順を解説しました。設定ファイルやJSONデータなどをアプリに同梱したい場合、アセットフォルダは非常に便利な仕組みです。ぜひ実際にプロジェクトを作成して試してみてください。
-
AndroidでEPUBファイルを開く方法|変換不要で電子書籍を読む4つのテクニック
電子書籍(eBook)を読むのが好きなのに、AndroidスマホやタブレットでEPUBファイルが開けずに困っていませんか? もしそうなら、この記事はまさにあなたのためのものです。このガイドでは、EPUBファイルをPDFに変換することなく、Android端末でそのまま開いて読む方法を詳しく解説します。 まずは「EPUBとは何か」「PDFと何が違うのか」という基本から見ていきましょう。 EPUBファイル形式とは? EPUB(Electronic Publication)は、電子書籍の出版に使われる柔軟でインタラクティブなXMLベースのファイル形式です。デバイスや画面サイズに関係なく、「.epub」
-
Androidでファイルを管理する方法|重複ファイルを削除してストレージをすっきり整理
近年のスマートフォンは大容量ストレージを搭載しているため、Android端末にさまざまなデータを保存しがちです。しかし管理をおろそかにすると、蓄積されたファイルが乱雑になり、必要なときにすぐ見つけられなくなってしまいます。Androidには標準で「ファイルマネージャー」機能が搭載されており、設定からアクセスできます。また、メーカーによっては専用のファイル管理アプリがプリインストールされている場合もあります。 Androidのファイルマネージャーとは? スマートフォン内のファイルを整理するには、ファイルマネージャーアプリが欠かせません。Androidの設定画面に「ファイル」や「ファイルマネージャ