Android数据存储之IO
2015-07-12 16:05
337 查看
Android开发中免不了数据本地的存储,今天我们来说一说如何利用IO流来进行数据存储。
这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流。
功能描述:点击按钮能够保存用户输入的用户名和密码,当点击记住密码时,亦能在应用第二次打开时,回显用户名和密码
1.这里布局文件的代码就不贴了,看效果图
2.MainActivity.java
3.输入账号和密码,点击登陆按钮,我们可以在DDMS中的file explore中看到保存的txt格式文件:
4.导出文件,通过文本编辑器打开验证,账号密码是否正确:
可以看到账号和密码被正确的保存了,且格式正确。
5.关闭应用,再次打开
可以看到,数据能够被正确的回显到输入框中,:-D!!!
这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流。
功能描述:点击按钮能够保存用户输入的用户名和密码,当点击记住密码时,亦能在应用第二次打开时,回显用户名和密码
1.这里布局文件的代码就不贴了,看效果图
2.MainActivity.java
package com.example.viewswitchtest; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.graphics.drawable.Drawable; import android.telephony.SmsManager; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText editAccount; private EditText editPwd; private Button btnLogin; private CheckBox checkbox; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 账号edit editAccount = (EditText) findViewById(R.id.edit_account); // 密码edit editPwd = (EditText) findViewById(R.id.edit_pwd); // 登陆button btnLogin = (Button) findViewById(R.id.btn_login); // 记住账号和密码checkbox checkbox = (CheckBox) findViewById(R.id.checkbox); // 回显账号和密码 readAccountAndPwd(); btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (checkbox.isChecked()) { String account = editAccount.getText().toString(); String pwd = editPwd.getText().toString(); // android为了防止开发人员手写路径容易出现错误,装门提供了两个API // getFilesDir() --> 对应的路径:data/data/项目包名/files // getCacheDir() --> 对应的路径:data/data/项目包名/cache File file = new File(getFilesDir(), "info.txt"); try { aedf FileOutputStream fos = new FileOutputStream(file); fos.write((account + "-" + pwd).getBytes()); // 保存格式为"account-password",方便分割 fos.close(); } catch (Exception e) { e.printStackTrace(); } } Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_LONG).show(); } }); } /** * 回显用户名和密码 */ private void readAccountAndPwd() { File file = new File(getFilesDir(), "info.txt"); if (file.exists()) { try { FileInputStream fis = new FileInputStream(file); BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); String text = reader.readLine(); String[] infos = text.split("-"); // 回显信息 editAccount.setText(infos[0]); editPwd.setText(infos[1]); fis.close(); reader.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
3.输入账号和密码,点击登陆按钮,我们可以在DDMS中的file explore中看到保存的txt格式文件:
4.导出文件,通过文本编辑器打开验证,账号密码是否正确:
可以看到账号和密码被正确的保存了,且格式正确。
5.关闭应用,再次打开
可以看到,数据能够被正确的回显到输入框中,:-D!!!
相关文章推荐
- android ActionBar(2)
- Android SharedPreferences 详解
- InstaMaterial-优秀的Android开源项目
- Android开发(三十二)——延时
- Android开发(三十一)——重复引用包错误Conversion to Dalvik format failed
- Android开发(二十九)——layout_weight的含义
- Android开发(二十八)——基础功能函数
- Android开发(二十七)——android:layout_weight的真实含义
- Android Studio 设置编码
- [Android] The handler class should be static or leaks might occur原因及解决方法
- Android开发(二十五)——Android上传文件至七牛
- Android开发(二十一)——自动更新
- Android开发(十九)——ViewFlipper中的onClick事件和onFling事件冲突
- Android开发(十八)——头部、中部、底部布局技巧
- Android开发(十七)——关闭中间activity
- Android开发(十六)——Android listview onItemClick事件失效的原因
- Android开发(十五)——ListView中Items的间距margin
- Android开发(十四)——SimpleAdapter与自定义控件
- Android开发(十三)——全屏滚动与listview
- Android开发(十二)——头部、中部、底部布局