數據存儲--------詳解持久化技術

文件存儲

       方法存儲是Android最基本的一種數據存儲方式下面就給大家承上代碼:

       

package com.example.liangshaoteng.fileoutputstream;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {
    private BufferedWriter bufferedWriter;
    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.et_text);

    }

    private void load() {
        try {
            //從代碼的openFileInput我們就能看出是:打開文件從裏面輸入到什麼地方
            FileInputStream data = openFileInput("dataSave");
            StringBuffer stringBuffer = new StringBuffer();
            //緩衝區讀取
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(data));
            String line = "";
            //一行一行的讀取
            while ((line = bufferedReader.readLine()) != null) {
                stringBuffer.append(line);
            }
            //通過StringBuffer追加到一起Toast出來
            Toast.makeText(getApplicationContext(), stringBuffer.toString(), Toast.LENGTH_LONG).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void save(String inputText) {
        if (inputText.isEmpty()) return;
        try {
            //從代碼的openFileOutput我們就能看出是:打開文件從外面放東西
            //第一個參數是:文件的名稱 第二個參數是:存儲的模式
            //存儲模式 :
            //Context.MODE_PRIVATE:別的應用不能訪問得到SharedPreferences對象
            //Context.MODE_WORLD_READABLE:別的應用可以訪問,並且是可以讀取SharedPreferences中的數據,但不能寫入數據
            //Context.MODE_WORLD_WRITEABLE:別的應用可以訪問,可以在SharedPreferences中寫入修改數據

            FileOutputStream dataSave = openFileOutput("dataSave", Context.MODE_PRIVATE);
            //在放東西的期間是需要一個緩衝BufferedWriter
            bufferedWriter = new BufferedWriter(new OutputStreamWriter(dataSave));
            //然後通過緩衝寫入數據
            bufferedWriter.write(inputText);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_LONG).show();
            if (bufferedWriter != null) {
                try {
                    //不要忘記用完要關閉
                    bufferedWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void commit(View view) {
        String trim = editText.getText().toString().trim();
        if (trim.isEmpty()) return;
        save(trim);
    }

    public void input(View view) {
        load();
    }
}



下面就是ShardPreference這一個非常簡單所以我就不再詳細的講解了後續呢我將給出工具類大家可以下載直接拿來用

 大家先看一下工具類ShardPreference

 

package com.waywings.fm.utils;

import android.content.Context;
import android.content.SharedPreferences;

public class ShareUtil {
    public static String CONFIG = "config";
    public static String FCONFIG = "fmconfig";
    public static String INTFIG = "intconfig";
    private static SharedPreferences sharedPreferences;

    public static void saveFloatData(Context context, String key, Float value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(FCONFIG, Context.MODE_PRIVATE);
        }
        sharedPreferences.edit().putFloat(key, value).commit();
    }

    public static Float getFloatData(Context context, String key, Float defValue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(FCONFIG, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getFloat(key, defValue);
    }

    public static void saveStringData(Context context, String key, String value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
        }
        sharedPreferences.edit().putString(key, value).commit();
    }

    public static String getStringData(Context context, String key, String defValue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getString(key, defValue);
    }

    public static int getIntData(Context context, String key, int defValue) {

        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(INTFIG, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getInt(key, defValue);
    }

    public static void savaIntData(Context context, String key, int value) {

        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(INTFIG, Context.MODE_PRIVATE);

        }
        sharedPreferences.edit().putInt(key, value).commit();
    }
}

不足之處還望大家指出 !

Sqlite存儲 : 請大家移步到我的另一篇文章 :點擊打開鏈接

後續給大家提供的工具類的下載 :   工具類下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章