您的位置:首页 > 移动开发 > Android开发

Android 之路41---本地数据存储

2018-02-23 10:01 225 查看

导读

1.数据存储简介

2.SharePreferences

3.内部存储与外部存储

数据存储简介







SharePreferences

package com.hala.view01;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

testSharePreferences();
}

private void testSharePreferences(){
SharedPreferences sharedPreferences=getSharedPreferences("test", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
//以key-value的形式存储
editor.putString("name","Emilia Clarke");
editor.putInt("age",30);
editor.commit();

//第一个参数,key值
//第二个参数,取不到值时的临时值
String name=sharedPreferences.getString("name",null);
int age=sharedPreferences.getInt("age",0);
//第一个参数,标签
//第二个参数,要打印的语句
Log.e("em","name:"+name+" age:"+age);
}

}


显示结果



内部存储与外部存储

package com.hala.view01;

import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

testInternalStorage();
// testExternalStorage();
}

/**
* 内部存储
*/
private void testInternalStorage(){
//缓存区域
File cacheDir=getCacheDir();
//建立文件夹 第一个参数,缓存区 第二个参数,文件夹名
File parentDir=new File(cacheDir,"mycache");
//如果文件夹不存在,则创建一个
if(!parentDir.exists()){
parentDir.mkdirs();
}

//写文件
File file=new File(parentDir,"test.txt");
try {
FileWriter fileWriter=new FileWriter(file);
fileWriter.write("I'm Emilia Clarke");
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
Log.e("em","testInteralSorage:"+e);
}

//读文件
try {
FileReader fileReader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(fileReader);
String line=null;
while((line=bufferedReader.readLine())!=null){
Log.e("em","line:"+line);
}

bufferedReader.close();
fileReader.close();
} catch (Exception e) {
Log.e("em","testInteralSorage:"+e);
}

}

/**
* 外部存储
* 记得写权限
*/
private void testExternalStorage(){
//如果没有读到sd卡,就提示错误信息
if(!TextUtils.equals(Environment.getExternalStorageState(),Environment.MEDIA_MOUNTED)){
Toast.makeText(this, "please check out your SD card!", Toast.LENGTH_SHORT).show();
}

//外部与内部不同在于获取路径的不同,其他都相同
File cacheDir=Environment.getExternalStorageDirectory();
File pare
a5b6
ntDir=new File(cacheDir,"mycache");
if(!parentDir.exists()){
parentDir.mkdirs();
}

//写文件
File file=new File(parentDir,"test.txt");
try {
FileWriter fileWriter=new FileWriter(file);
fileWriter.write("I'm Emilia Clarke");
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
Log.e("em","testExteralSorage:"+e);
}

//读文件
try {
FileReader fileReader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(fileReader);
String line=null;
while((line=bufferedReader.readLine())!=null){
Log.e("em","line:"+line);
}

bufferedReader.close();
fileReader.close();
} catch (Exception e) {
Log.e("em","testExteralSorage:"+e);
}
}

}


配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hala.view01">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>


显示结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: