Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidアプリでassetsフォルダのファイルを読み込む方法【初心者向け解説】

本記事では、Androidアプリでassets(アセット)フォルダに格納したテキストファイルを読み込み、画面に表示する方法をステップごとに解説します。サンプルコード付きなので、そのままプロジェクトに組み込んで動作を確認できます。

アセットファイル読み込みの全体像

Androidでは、画像やテキストなどのリソースファイルを assets フォルダに配置することで、アプリ内部から生データとしてアクセスできます。読み込みには AssetManageropen() メソッドを使用し、取得した InputStream をバイト配列として読み取るのが基本の流れです。

手順1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択して、必要な項目を入力して新しいプロジェクトを作成します。

手順2:レイアウトファイル(activity_main.xml)を編集する

次のコードを res/layout/activity_main.xml に追加します。中央にTextView、その下にボタンを配置するシンプルな構成です。

<?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">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:padding="12sp"
        android:textStyle="bold"/>
    <Button
        android:id="@+id/btnReadText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Read text from assets"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20sp"
        android:textStyle="bold">
    </Button>
</RelativeLayout>

手順3:assetsフォルダとテキストファイルを作成する

プロジェクトビューで「app」を右クリックし、「New」→「Folder」→「Assets Folder」を選択してassetsフォルダを生成します。続けて、assetsフォルダ上で右クリック→「New」→「File」を選び、myText.txt という名前でテキストファイルを作成し、任意のテキストを記述します。

“Darkness cannot drive out darkness: only light can do that. Hate cannot drive out hate: only love can do that.”

手順4:MainActivity.javaに読み込み処理を実装する

次のコードを src/MainActivity.java に追加します。ボタンがタップされると、getAssets().open() でファイルのInputStreamを取得し、バイト配列経由で文字列に変換してTextViewに表示します。

package app.com.sample;
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.btnReadText);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String string = "";
                try {
                    InputStream inputStream = getAssets().open("myText.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端末をPCに接続していることを前提とします。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。実行デバイスとして接続したスマートフォンを選択すると、端末の画面に以下のように表示されます。

Androidアプリでassetsフォルダのファイルを読み込む方法【初心者向け解説】


Androidアプリでassetsフォルダのファイルを読み込む方法【初心者向け解説】

補足:より安全な実装のポイント

サンプルでは available() でファイルサイズを取得していますが、大きなファイルを扱う場合は BufferedReader を使った行単位の読み込みや、文字コード(UTF-8など)を明示的に指定する new String(buffer, "UTF-8") の利用を推奨します。また、使用後は必ず inputStream.close() でストリームを閉じることで、リソースリークを防げます。

  1. Androidからマルウェアを削除する方法|感染の兆候と予防策を徹底解説

    現代社会において、スマートフォンは生活に欠かせない存在となっています。銀行アプリ、ナビゲーションアプリ、各種ユーティリティアプリなど、個人の重要な情報や機能がほぼすべて詰まっています。だからこそ、プライバシーを守るためにも、スマートフォンをしっかりと保護することが何よりも重要です。パソコンと同様に、Androidスマートフォンもウイルス、トロイの木馬、スパイウェア、アドウェアなどの悪意あるプログラム(マルウェア)に感染する可能性があります。Androidマルウェアの主な目的は、機密情報の窃取、無関係な広告の表示によるユーザーの誤誘導、悪質なサイトへのリダイレクトなどです。マルウェアはさまざまな

  2. JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順

    CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各