1.Android中的数据存储方式有五种,分别是文件存储、SharedPreferences、SQLite数据库、ContentProvider以及网络存储。
文件存储:
文件存储是Android中最基本的一种数据存储方式,它与Java中的文件存储类似,都是通过I/O流的形式把数据原封不动的存储到文档中。–Android中的文件存储分为内部存储和外部存储。
内部存储:指将应用程序中的数据以文件方式存储到设备的内部存储空间中(位于data/data/<packagename>/files/ 目录)
外部存储指将文件存储到一些外部设备上(通常位于mnt/sdcard目录下,不同厂商生产的手机路径可能不同),属于永久性的存储方式。
文件存储案例代码:activity_main.xml与MainActivity.java文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textSize="20dp"
android:text="请输入您要存储的信息:" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:ems="10"
android:id="@+id/et_info"/>
<requestFocus/>
<Button
android:id="@+id/btn_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/et_info"
android:layout_below="@id/et_info"
android:text="读取信息" />
<Button
android:id="@+id/btn_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/et_info"
android:text="保存信息" />
</RelativeLayout>
MainActivity.java
文件存储结果:
package com.example.zlf.demo4_30_filesave;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class MainActivity extends AppCompatActivity {
private EditText et_info;
private Button btn_read;
private Button btn_save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//变量初始化
et_info=(EditText)findViewById(R.id.et_info);
btn_read=(Button)findViewById(R.id.btn_read);
btn_save=(Button)findViewById(R.id.btn_save);
btn_save.setOnClickListener(new ButtonListener());
btn_read.setOnClickListener(new ButtonListener());
}
private class ButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_save:
String saveInfo=et_info.getText().toString().trim();
FileOutputStream fos;
try {
fos=openFileOutput("data.txt",MODE_APPEND);//把文件输出到data中
fos.write(saveInfo.getBytes());//将我们写入的字符串变成字符数组)
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this,"数据保存成功",Toast.LENGTH_SHORT).show();
break;
case R.id.btn_read:
String content="";
try {
FileInputStream fis=openFileInput("data.txt");
byte [] buffer=new byte[fis.available()];
fis.read(buffer);
content=new String(buffer);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this,"保存的数据是"+content,Toast.LENGTH_SHORT).show();
break;
default:
}
}
}
}
图片: