文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android实现文件存储案例

2024-04-02 19:55

关注

本文实例为大家分享了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文件


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:" />

        <EditText
            android:id="@+id/username"
            android:layout_width="240dp"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密    码:" />

        <EditText
            android:id="@+id/pwd"
            android:layout_width="240dp"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <CheckBox
            android:id="@+id/remember"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Remeber password" />
    </LinearLayout>

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登录" />

</LinearLayout>

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯