SharedPreferences-存储数据
一.SharedPreferences是数据持久化,数据能够被存储起来,不会被改变,程序退出后,我们再次运行的话,数据还在,就是数据持久化。
2.用途:比如做引导界面;手机qq登陆,等
我们来看看代码吧:
//系统会自动创建一个名字叫Share
SharedPreferences sharedPreferences=getSharedPreferences("SharedPreference_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putBoolean("first_into",false); //这里你可以putInt等
editor.commit();
这里是保存的数据,那么我们在开始的时候应该setdata创建数据,我们以一个例子看下
private void setdata(){
SharedPreferences sharedPreferences=getSharedPreferences("SharedPreference_name", Context.MODE_PRIVATE);
first_into=sharedPreferences .getBoolean("first_into",true); //读取数据
if(first_into==false){
startActivity(new Intent(First_page_activity.this,MainActivity.class));
finish();
} else {
button=(Button)findViewById(R.id.button_one);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(First_page_activity.this,Second_page_activity.class));
finish();
}
});
}}
代码有些乱啊,第一次使用代码框。
当然,我们还可以修改(就是在写一次editor.putInt(),删除editor.remove("key")
另外editor.applys()是和网络相关的,后台写数据,另开线程的
二.管理文件
1.存储:分为内部存储和外部存储
获取读取外部存储的权限—manifest:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
Internal storage->
getFilesDir()是返回一个File,代表我们app的internal目录
getCachDir()也是返回一个File,代表app的internal缓存的目录
创造文件:File file=new File(getFilesDir(),"text.tex");
file.craeatNewFile() ->这里会出现异常,alt+enter选择捕捉异常就好啦
2.读取各个目录的文件
直接读取:
//打开文件
WebView webview=new WebView(this);
webview.loadUrl("file:///android_asset/test.html")
InputStream inputstream=getResource().getAssets().open("test.html")
//读列表
String[] filenames = getAssets().list("images");
// 读图片
InputStream inputStream = getAssets().open("images/dog.jpg");
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(bitmap);
读音乐
AssetFileDescriptor assetFileDescriptor = getAssets().openFd("libai.mp3"); MediaPlayer player = new MediaPlayer();
player.reset();
player.setDataSource(
assetFileDescriptor.getFileDescriptor(),
assetFileDescriptor.getStartOffset(),
assetFileDescriptor.getLength());
player.prepare();
player.start();
}
读sd卡
void testSDCard(){
File file = new File("/sdcard/test/a.txt");
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.getDataDirectory(); // 获取Android中的data数据目录
Environment.getDownloadCacheDirectory();
Environment.getExternalStorageDirectory();
}