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: } } } }
图片: