原文:http://mzh3344258.blog.51cto.com/1823534/746174
- package com.mzh.www;
- import java.io.File;
- import java.io.IOException;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Environment;
- /**
- * @Title: FileTestActivity.java
- * @Package com.mzh.www
- * @Description: 文件类File的常用方法
- * @author MZH
- * @version V2.2
- */
- public class FileTestActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //小马写的时候不带后缀名,其实这个要写的
- //而且安卓中不建议用此种写法,支持使用Environment获取路径
- String path = "/sdcard/fileName";
- File file = new File(path); //不多讲
- //下面是File类的一些静态属性
- //file.separator; 小马以前喜欢用"/",虽然不错,但不支持,接着看下面
- //举两种 写法:
- //方法一:
- String path2 = Environment.getExternalStorageDirectory()
- .getPath()
- +"/"+"XiaoMa.txt";
- File fileName = new File(path2);
- //此处可以添加对文件的操作,IO流
- //方法二:
- String path3 = Environment.getExternalStorageDirectory()
- .getPath()
- +File.separator+"XiaoMa.txt";
- File fileNam = new File(path3);
- //此处可以添加对文件的操作,IO流
- /**
- * 大家是不是发现这两种写法第二种多此一举?其实并非如此的
- *,在Android中,官方鼓励支持使用
- * File.separator来插入"/"符号
- * 因为:不同的机型配置系统等各种因素下,"/"符号的转义字符也会不同*
- *,所以为保险起见,
- * 建议朋友们使用File.separator来区别
- */
- //下面讲下文件的创建是怎么一回事
- //Android 中创建文件的方式有很多种,小马现在讲下
- //我们经常用到的几种哦,吼吼
- File file3 = new File("path"); //path为要创建文件的路径
- //,相关路径可查看API
- //创建一个临时文件
- //小马讲下,如果让我们自己创建临时文件时,我们还得拼接文件名
- //,Android为我们提供了更快捷的方式
- //prefix代表:文件名前缀,suffix代表:生成临时文件的格式,
- //如:.txt .amr .jpg .png等等
- try {
- //此处小马未指定路径,它会默认创建在SD卡根目录下
- File tempFile = File.createTempFile("前缀", "格式"); //记得加入try语句块中
- //如果想要指定路径,则可以这样写
- File tempFile2 = File.createTempFile("前缀", "格式",new File("指定临时文件路径"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- //创建文件的方式有三种:要看仔细咯
- File file2 = new File(path3); //因为路径是自己指定的,
- //在此小马就直接合上面定义过的路径了
- if(!file2.exists()){
- //方式一:
- try {
- file2.createNewFile();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //方式二:
- //file2.mkdir();
- //方式三:
- //file2.mkdirs();
- /**
- * 以上创建文件方式好像也没多大不同之处,小马的的错误,
- *创建文件的时候随便调用这三个方法其中之一
- * 但后来发现还是有明显区别的,现在贴一段官方API说明
- *,小马英语也不咋的,希望英语一般的朋友们
- * 看到英语不要怕自己不会翻译什么的,多查单词,
- *不会的再求助工作翻译下,查可以提高自己的英语能力
- */
- /**
- * 小述:讲下“/”与“\”的不同,在创建文件时不能使用使用windows方式,
- *也就是"\",除非你转义有linux方式的话就直接用“/”,省了麻烦,
- *还不会出错转义错误等问题,对吧?
- */
- /**
- * createNewFile()
- Creates a new, empty file on the file system according to the path information
- stored in this file.
- 这个方法指在指定路径下创建一个empty(空的,小马就认识几个单词,
- *其余的都有道查)文件
- */
- /**
- * mkdir()
- Creates the directory named by the trailing filename of
- this file.
- 这个方法指:创建一个指定目录下的文件,但这个方法不能创建多个目录,
- 一般都使用加S的,这个尽量少用,一般私有文件
- 及私有目录的创建用这个方法
- */
- /**
- * mkdirs()
- Creates the directory named by the trailing filename of this file,
- including the complete directory path required to create this
- directory.
- 这个方法指:创建一个指定目录下的文件,与上面不同的是,
- 此方法可以创建多个目录哦,常用的创建文件的方法
- */
- /**
- * 最后,讲下isDirectory() 与 isFile()的小区别
- * 小马刚开始不懂什么是Directory,后来试了下,讲直接的,
- 就是:是否是文件夹,isFile是否是文件,简单吧??O_O
- */
- }
- }
- }
最后,不要忘记加Android中文件操作的权限:
- <!--往sdcard中写入数据的权限 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
- <!--在sdcard中创建/删除文件的权限 -->
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>