本文实例为大家分享了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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。