首页 > 代码库 > 从零开始学android<数据存储(3)External Storage外部存储.三十七.>

从零开始学android<数据存储(3)External Storage外部存储.三十七.>

所谓的外部存储External Storage就是将数据文件保存在SD卡上。

1.但是在保存数据时需要先对SD卡的状态进行判断。

使用Environment.getExternalStorageState()可以SD卡的运行状态

分别有一下的状态

MEDIA_UNKNOWNMEDIA_REMOVEDMEDIA_UNMOUNTEDMEDIA_CHECKINGMEDIA_NOFSMEDIA_MOUNTEDMEDIA_MOUNTED_READ_ONLYMEDIA_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>


JAVA文件

<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外部存储.三十七.>