您现在的位置是:群英 > 开发技术 > 移动开发
Android开发中怎样进行文件存储,方法是啥?
Admin发表于 2022-02-12 17:53:24959 次浏览

    这篇文章给大家介绍的是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

    以上就是Android中实现文件存储的方法介绍,上述示例具有一定的参考价值,有需要的朋友可以了解看看,希望对大家学习Android开发有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-09-17 16:52:45 
摘要:java中的super关键字是一个引用变量,用于引用直接父类对象,下面这篇文章主要给大家介绍一下super关键字的使用,需要的朋友可以参考下
2022-05-27 18:02:25 
摘要:java字符串转数字的方法:1、转化为整型数字【Integer.parseInt(String s) 】;2、转化为浮点型数字【Float.parseFloat(String s)】。
2022-08-19 17:49:16 
摘要:这篇文章主要为大家介绍了python教程中网络爬虫及数据可视化原理的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部