您好,登錄后才能下訂單哦!
這篇文章主要講解了“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文件
<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如何實現文件存儲這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。