LoginSignup
4
0

More than 3 years have passed since last update.

ローカルにデータを保存する3つの方法(Android)

Posted at

はじめに

Androidアプリでローカルにデータを(永続的に)保存する3つの方法を本記事にまとめる。
備忘録程度
以下が3つの方法である。
1. Preference
2. ローカルファイル
3. SQLite

サンプルコード

1. Preference

Preferenceは、データをキーで保存する
boolean、int、float、long、Stringの5つの型で値を保存できる
↓ String型の値を保存する場合のサンプルコード

Preference.java
    // PreferenceでString型のデータを保存する
    private void save(String key, String value) {
        SharedPreferences pref = getContext().getSharedPreferences("pref", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        //putXXXメソッドを使用して値を保存する(XXXには型が入る)
        editor.putString(key, value);
        editor.commit();
    }

    // Preferenceで保存したデータを取得する
    private String load(String key) {
        SharedPreferences pref = getContext().getSharedPreferences("pref", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        //getXXXメソッドを使用して保存した値を取得する(XXXに型が入る)
        return pref.getString(key, null);
    }

↓ Preferenceでのデータ保存の画面イメージ
preference.png

2. ローカルファイル

javaのOutputStreamInputStreamを利用してデータをローカルファイルに保存する
↓ テキストファイルでデータを保存する場合のサンプルコード

Localfile.java
    // ローカルファイルにデータを保存する
    private void save(String text) {
        try {
            OutputStream out = getContext().openFileOutput("test.txt", Context.MODE_PRIVATE);
            PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "UTF-8"));
            writer.append(text);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // ローカルファイルのデータを取得する
    private String load() {
        String text = "";
        try {
            InputStream in = getContext().openFileInput("test.txt");
            BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
            String buf;
            while((buf = reader.readLine()) != null){
                text += buf + "\n";
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return text;
    }

↓ ローカルフォルダを利用したデータ保存の画面イメージ
localfile.png

3. SQLite

アプリ内に軽量なDBを作り、そこでデータを保管する方法。
長くなるので、別途記事にまとめる。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0