天天看点

Android中文件类File的详细使用说明

    今天小马来写下自己的开发过程中碰到的问题和所犯的错,虽然简单,但还是希望通过总结提高自己,哪怕很小的进步,也希望朋友们跟小马多交流,指点小马的不足,多批评小马,有很多东西要学,我们多多交流,共同进步,直接看代码:

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()

                             +File.separator+"XiaoMa.txt"; 

              File fileNam = new File(path3); 

              /** 

               * 大家是不是发现这两种写法第二种多此一举?其实并非如此的

*,在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> 

这些问题都是小马在开发过程中遇到过的问题,虽然很低级 ,

但错误犯多了就不会犯了,最后 ,

小马希望大家多查英文文档,不管自己 

英语阅读能力好不好,讲真话,小马的英语,可以让你哭,

但要学会善用工具学习,爱编程,就要补编程方面的缺陷,不要被这英语吓到 

啦,今天就讲这些内容吧,File类中其它方法都很简单,

大家可以试着用下词典查下意思,很容易知道它是干吗的方法的,相信小马 

小马希望:能跟大伙交流学习,共同进步,完成菜鸟中的菜鸟,

到高手中的高手的蜕变,高手,是从菜鸟努力导致的,不是生下来就有的, 

希望我们共同进步

日后小马如果再在开发过程中碰到有关File类的问题,会继续追加到此文章中,希望对处于跟小马一样阶段的朋友们有所帮忙,谢谢啦,O_O,每天进步一点,加油

     本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/746174,如需转载请自行联系原作者

继续阅读