使用 Activity 的 openFileOutput() 方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放 些小文件还行,如果要存放像视频这样的大文件,是不可行的。对于像视频这样的大文件,我们可以把它存 放在 SDCard 。 SDCard 是干什么的?你可以把它看作是移动硬盘或 U 盘。
在模拟器中使用
SDCard
,你需要先创建一张
SDCard
卡(当然不是真的
SDCard
,只是镜像文件)。创建
SDCard
可以在
Eclipse
创建模拟器时随同创建,也可以使用
DOS
命令进行创建,如下:
在
Dos
窗口中进入
android SDK
安装路径的
tools
目录,输入以下命令创建一张容量为
2G
的
SDCard
,文件后缀可
以随便取,建议使用
.img
:
mksdcard
2048M
D:/AndroidTool/sdcard.img
在程序中访问
SDCard
,你需要申请访问
SDCard
的权限。
在
AndroidManifest.xml
中加入访问
SDCard
的权限如下
:
<!--
在
SDCard
中创建与删除文件权限
-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!--
往
SDCard
写入数据权限
-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
要往
SDCard
存放文件,程序必须先判断手机是否装有
SDCard
,并且可以进行读写。
注意:访问
SDCard
必须在
AndroidManifest.xml
中加入访问
SDCard
的权限
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File sdCardDir = Environment.getExternalStorageDirectory();
//
获取
SDCard
目录
File saveFile = new File(sdCardDir, “itcast.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("
传智播客
".getBytes());
outStream.close();
}
Environment.getExternalStorageState()
方法用于获取
SDCard
的状态,如果手机装有
SDCard
,并且可以进行读
写,那么方法返回的状态等于
Environment.MEDIA_MOUNTED
。
Environment.getExternalStorageDirectory()
方法用于获取
SDCard
的目录,当然要获取
SDCard
的目录,你也可以
这样写:
File sdCardDir = new File("/sdcard");
//
获取
SDCard
目录
File saveFile = new File(sdCardDir, "itcast.txt");
//
上面两句代码可以合成一句:
File saveFile = new File("/sdcard/itcast.txt");
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("
传智播客
test".getBytes());
outStream.close();