Android 中数据存储的方式
作者:互联网
Android 中数据存储的方式
内部存储
注释:内部存储和外部存储都是手机内存的一部分,与移动存储方式无关
-
内部存储指的是android系统将数据存储在data/data/应用包名/files/自定义文件名 下的数据存储方式,仅限于本应用对其访问(读写数据)
-
数据存储流程:
-
声明输入输出流对象
-
获取输入输出流对象(调用openFileInput/Output())
-
文件读取、写入逻辑
-
判断并关闭流对象
public class MainActivity extends AppCompatActivity {
byte[] buffer=null;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText et_info1=findViewById(R.id.et_info1);
EditText et_info2=findViewById(R.id.et_info2);
findViewById(R.id.btn_write).setOnClickListener(new View.OnClickListener() {
FileOutputStream fos=null;//声明字节输出流对象,用于数据的读取
@Override
public void onClick(View view) {
//文件写入
try {
fos=openFileOutput("input",MODE_PRIVATE);
String strs=et_info1.getText().toString();//获取输入编辑框的文本信息
fos.write(strs.getBytes());//将字符串转化为字节数组的形式,并写入到磁盘当中
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//此处一定要对fos先作判断再关闭,否则会出现空指针异常,fis同理
if (fos!=null){
try {
fos.close();
Toast.makeText(MainActivity.this,"数据写入成功",Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
//读取文件信息
findViewById(R.id.btn_read).setOnClickListener(new View.OnClickListener() {
FileInputStream fis=null;//声明字节输入流对象,用于数据的写入
@Override
public void onClick(View view) {
try {
fis=openFileInput("input");
buffer=new byte[fis.available()];//初始化字节数组
fis.read(buffer);//输入流以字节的方式读数据
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fis!=null){
try {
fis.close();
String data=new String(buffer);//将读取的字节数据以字符串的方式显示
et_info2.setText(data);
Toast.makeText(MainActivity.this,"数据读取成功",Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
}
} -
外部存储
与内部存储模式类似,但需要添加用户权限,并且流的创建方式不同
共享数据存储
sqlite数据存储
如何启动sqlite数据库:
-
在D:\Program Files\sdk\platform-tools目录下双击打开sqlite3.exe
-
.exit 退出sqlite3数据库交互模式
或者:
-
在D:\Program Files\sdk\platform-tools目录下输入cmd 后回车
-
键入:adb shell 可以进入shell命令模式
-
键入:sqlite3既可打开sqlite3交互模式
-
键入:.exit 即可以退出数据库交互模式
-
标签:fis,存储,方式,fos,printStackTrace,catch,et,Android 来源: https://www.cnblogs.com/a-n-yan/p/15875600.html