首页 > 代码库 > 从零开始学android<数据存储(3)External Storage外部存储.三十七.>
从零开始学android<数据存储(3)External Storage外部存储.三十七.>
所谓的外部存储External Storage就是将数据文件保存在SD卡上。
1.但是在保存数据时需要先对SD卡的状态进行判断。
使用Environment.getExternalStorageState()可以SD卡的运行状态
分别有一下的状态
MEDIA_UNKNOWN
, MEDIA_REMOVED
, MEDIA_UNMOUNTED
, MEDIA_CHECKING
, MEDIA_NOFS
, MEDIA_MOUNTED
, MEDIA_MOUNTED_READ_ONLY
, MEDIA_SHARED
,MEDIA_BAD_REMOVAL
, or MEDIA_UNMOUNTABLE
.
我们一般使用的是
MEDIA_MOUNTED可操作
2.获取SD卡的跟目录
这里可以使用Environment.getExternalStorageDirectory()方法来获取
3.判断路径是否存在,并进行相应操作
使用file.getParentFile().exists()来判断文件路径是否存在,如果不存在就创建
file.getParentFile().mkdir();
4.使用outputstream,Writer,printstream等方法进行数据的写入操作
5.文件的读取方法同上
XML文件
<span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="106dp" android:text="保存SD卡文件" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="读取SD卡文件" /> </RelativeLayout> </span>
<span style="font-size:18px;">package com.example.externalstorage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.PrintStream; import java.util.Scanner; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button saveData, getData; public static final String FILENAME = "flyou.dat";// 文件名 public static final String FILEDIR = "myFile";// SD卡下的文件路径 private PrintStream print;// 初始化打印流 private Scanner input;// 初始化输入流 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 实例化按钮 saveData = http://www.mamicode.com/(Button) this.findViewById(R.id.button1);>
最后还必须给android工程配置权限android.permission.WRITE_EXTERNAL_STORAGE
将文件导出后用记事本打开
NOTE:
如果只进行文件的读取操作,需要配置android.permission.READ_EXTERNAL_STORAGE
如果同时进行读取操作则只需进行配置android.permission.WRITE_EXTERNAL_STORAGE就可以了
下节预报:Sqlite数据库存储
从零开始学android<数据存储(3)External Storage外部存储.三十七.>