溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android如何實(shí)現(xiàn)文件存儲(chǔ)

發(fā)布時(shí)間:2021-11-09 15:49:50 來(lái)源:億速云 閱讀:176 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“Android如何實(shí)現(xiàn)文件存儲(chǔ)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Android如何實(shí)現(xiàn)文件存儲(chǔ)”吧!

1、文件存儲(chǔ)案例

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);
    }

    //    從文件中讀取數(shù)據(jù)
    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();
            }
        }
    }

    //    將文件存儲(chǔ)到文件中
    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();
    }
}

運(yùn)行結(jié)果,Pass

2、SharePreferences存儲(chǔ)案例

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);
    }
}

運(yùn)行結(jié)果,Pass

Android如何實(shí)現(xiàn)文件存儲(chǔ)

3、登錄頁(yè)面,實(shí)現(xiàn)記住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) {
            // 將賬號(hào)和密碼都設(shè)置到文本框中
            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();
                // 如果賬號(hào):admin,密碼:123456,就認(rèn)為登錄成功
                if (username.equals("admin") && pwd.equals("123456")) {
                    mEditor = mSharedPs.edit();
                    // 檢查復(fù)選框是否被選中
                    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, "用戶名或密碼輸入錯(cuò)誤,請(qǐng)重新輸入");
                }
            }
        });
    }
}

運(yùn)行結(jié)果,Pass

Android如何實(shí)現(xiàn)文件存儲(chǔ)

感謝各位的閱讀,以上就是“Android如何實(shí)現(xiàn)文件存儲(chǔ)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Android如何實(shí)現(xiàn)文件存儲(chǔ)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI