Android实现文件存储案例

本文实例为大家分享了Android实现文件存储的具体代码,供大家参考,具体内容如下

1、文件存储案例

public class TestActivity extends AppCompatActivity {
    private EditText mFileEdit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        initView();
    }

    private void initView() {
        mFileEdit = findViewById(R.id.fileEdit);
        String inputText = load();
        if (!TextUtils.isEmpty(inputText)) {
            mFileEdit.setText(inputText);
            mFileEdit.setSelection(inputText.length());
            Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        String inputText = mFileEdit.getText().toString();
        save(inputText);
    }

    //    从文件中读取数据
    public void save(String inputText) {
        FileOutputStream outputStream = null;
        BufferedWriter writer = null;
        try {
            outputStream = openFileOutput("data", Context.MODE_PRIVATE);
            writer = new BufferedWriter(new OutputStreamWriter(outputStream));
            writer.write(inputText);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    //    将文件存储到文件中
    public String load() {
        FileInputStream inputStream = null;
        BufferedReader reader = null;
        StringBuilder builder = new StringBuilder();
        try {
            inputStream = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return builder.toString();
    }
}

运行结果,Pass

2、SharePreferences存储案例

public class SharePfsActivity extends AppCompatActivity implements View.OnClickListener {
    private static final String TAG = "SharePfsActivity";
    private Button mSharedData;
    private Button mRestoreData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shared_pfs);
        initView();
    }

    private void initView() {
        mSharedData = findViewById(R.id.sharedBtn);
        mSharedData.setOnClickListener(this);
        mRestoreData = findViewById(R.id.restoreBtn);
        mRestoreData.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.sharedBtn:
                sharedData();
                break;
            case R.id.restoreBtn:
                restoreData();
                break;
            default:
                break;
        }
    }

    private void sharedData() {
        SharedPreferences.Editor editor = getSharedPreferences("shareData", MODE_PRIVATE).edit();
        editor.putString("name", "功勋");
        editor.putString("type", "电影");
        editor.apply();
    }

    private void restoreData() {
        SharedPreferences preferences = getSharedPreferences("shareData", MODE_PRIVATE);
        String name = preferences.getString("name", "");
        String type = preferences.getString("type", "");
        Log.d(TAG, "名称:" + name + ",类型:" + type);
    }
}

运行结果,Pass

3、登录页面,实现记住username和pwd功能

activity_login.xml文件



    

        

        
    

    

        

        
    

    

        

        
    

    

LoginActivity .class

public class LoginActivity extends AppCompatActivity {
    private static final String TAG = "LoginActivity";
    private Button mLogin;
    private CheckBox mRemember;
    private EditText mUsername;
    private EditText mPwd;
    private SharedPreferences mSharedPs;
    private SharedPreferences.Editor mEditor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
    }

    private void initView() {
        mSharedPs = PreferenceManager.getDefaultSharedPreferences(this);
        mUsername = findViewById(R.id.username);
        mPwd = findViewById(R.id.pwd);
        mRemember = findViewById(R.id.remember);
        mLogin = findViewById(R.id.login);
        boolean isRemember = mSharedPs.getBoolean("remember_pwd", false);
        if (isRemember) {
            // 将账号和密码都设置到文本框中
            mUsername.setText(mSharedPs.getString("username", ""));
            mPwd.setText(mSharedPs.getString("pwd", ""));
            mRemember.setChecked(true);
        }
        mLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = mUsername.getText().toString();
                String pwd = mPwd.getText().toString();
                // 如果账号:admin,密码:123456,就认为登录成功
                if (username.equals("admin") && pwd.equals("123456")) {
                    mEditor = mSharedPs.edit();
                    // 检查复选框是否被选中
                    if (mRemember.isChecked()) {
                        mEditor.putString("username", username);
                        mEditor.putString("pwd", pwd);
                        mEditor.putBoolean("remember_pwd", true);
                    } else {
                        mEditor.clear();
                    }
                    mEditor.apply();
                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(intent);
                    finish();
                } else {
                    Log.d(TAG, "用户名或密码输入错误,请重新输入");
                }
            }
        });
    }
}

运行结果,Pass

Android实现文件存储案例_第1张图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Android实现文件存储案例)