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

简介:

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

 

 
  1. package com.mzh.www; 
  2.  
  3. import java.io.File; 
  4. import java.io.IOException; 
  5.  
  6. import android.app.Activity; 
  7. import android.os.Bundle; 
  8. import android.os.Environment; 
  9.  
  10. /**   
  11. * @Title: FileTestActivity.java 
  12. * @Package com.mzh.www 
  13. * @Description: 文件类File的常用方法 
  14. * @author MZH 
  15. * @version V2.2 
  16. */ 
  17. public class FileTestActivity extends Activity { 
  18.     /** Called when the activity is first created. */ 
  19.     @Override 
  20.     public void onCreate(Bundle savedInstanceState) { 
  21.         super.onCreate(savedInstanceState); 
  22.         setContentView(R.layout.main); 
  23.          
  24.          
  25.         //小马写的时候不带后缀名,其实这个要写的 
  26.         //而且安卓中不建议用此种写法,支持使用Environment获取路径 
  27.         String path = "/sdcard/fileName";  
  28.         File file = new File(path); //不多讲 
  29.          
  30.          
  31.         //下面是File类的一些静态属性 
  32.         //file.separator;    小马以前喜欢用"/",虽然不错,但不支持,接着看下面 
  33.          
  34.          
  35.         //举两种 写法: 
  36.               //方法一: 
  37.               String path2 = Environment.getExternalStorageDirectory()
  38. .getPath() 
  39.                              +"/"+"XiaoMa.txt"
  40.               File fileName = new File(path2); 
  41.               //此处可以添加对文件的操作,IO流 
  42.                
  43.                
  44.               //方法二: 
  45.               String path3 = Environment.getExternalStorageDirectory()
  46. .getPath() 
  47.                              +File.separator+"XiaoMa.txt"
  48.               File fileNam = new File(path3); 
  49.               //此处可以添加对文件的操作,IO流 
  50.          
  51.                
  52.               /** 
  53.                * 大家是不是发现这两种写法第二种多此一举?其实并非如此的
  54. *,在Android中,官方鼓励支持使用 
  55.                * File.separator来插入"/"符号 
  56.                * 因为:不同的机型配置系统等各种因素下,"/"符号的转义字符也会不同*
  57. *,所以为保险起见, 
  58.                * 建议朋友们使用File.separator来区别 
  59.                */ 
  60.            
  61.                
  62.               //下面讲下文件的创建是怎么一回事 
  63.               //Android 中创建文件的方式有很多种,小马现在讲下
  64. //我们经常用到的几种哦,吼吼 
  65.               File file3 = new File("path"); //path为要创建文件的路径
  66. //,相关路径可查看API 
  67.                
  68.                
  69.               //创建一个临时文件 
  70.               //小马讲下,如果让我们自己创建临时文件时,我们还得拼接文件名
  71. //,Android为我们提供了更快捷的方式 
  72.               //prefix代表:文件名前缀,suffix代表:生成临时文件的格式,
  73. //如:.txt .amr .jpg .png等等 
  74.               try { 
  75.                  //此处小马未指定路径,它会默认创建在SD卡根目录下 
  76.                 File tempFile = File.createTempFile("前缀""格式"); //记得加入try语句块中 
  77.                  
  78.                 //如果想要指定路径,则可以这样写 
  79.                 File tempFile2  = File.createTempFile("前缀""格式",new File("指定临时文件路径")); 
  80.               } catch (IOException e) { 
  81.                 e.printStackTrace(); 
  82.               }  
  83.                
  84.                
  85.               //创建文件的方式有三种:要看仔细咯 
  86.                    
  87.                   File file2 = new File(path3);  //因为路径是自己指定的,
  88. //在此小马就直接合上面定义过的路径了 
  89.                   if(!file2.exists()){ 
  90.                        
  91.                        //方式一: 
  92.                       try { 
  93.                         file2.createNewFile(); 
  94.                        } catch (IOException e) { 
  95.                         // TODO Auto-generated catch block 
  96.                         e.printStackTrace(); 
  97.                        } 
  98.                        
  99.                       //方式二: 
  100.                       //file2.mkdir(); 
  101.                        
  102.                       //方式三: 
  103.                       //file2.mkdirs(); 
  104.                        
  105.                       /** 
  106.                        * 以上创建文件方式好像也没多大不同之处,小马的的错误,
  107. *创建文件的时候随便调用这三个方法其中之一 
  108.                        * 但后来发现还是有明显区别的,现在贴一段官方API说明
  109. *,小马英语也不咋的,希望英语一般的朋友们 
  110.                        * 看到英语不要怕自己不会翻译什么的,多查单词,
  111. *不会的再求助工作翻译下,查可以提高自己的英语能力 
  112.                        */ 
  113.                        
  114.                        
  115.                        
  116.                       /** 
  117.                        * 小述:讲下“/”与“\”的不同,在创建文件时不能使用使用windows方式,
  118. *也就是"\",除非你转义有linux方式的话就直接用“/”,省了麻烦,
  119. *还不会出错转义错误等问题,对吧? 
  120.                        */ 
  121.                        
  122.                        
  123.                      /** 
  124.                       * createNewFile() 
  125.                         Creates a new, empty file on the file system according to the path information  
  126.                         stored in this file. 
  127.                         这个方法指在指定路径下创建一个empty(空的,小马就认识几个单词,
  128. *其余的都有道查)文件  
  129.                       */ 
  130.                        
  131.                     /** 
  132.                      * mkdir() 
  133.                        Creates the directory named by the trailing filename of
  134.  this file. 
  135.                              这个方法指:创建一个指定目录下的文件,但这个方法不能创建多个目录,
  136. 一般都使用加S的,这个尽量少用,一般私有文件 
  137.                              及私有目录的创建用这个方法 
  138.                      */ 
  139.                        
  140.                      
  141.                      /** 
  142.                       * mkdirs() 
  143.                         Creates the directory named by the trailing filename of this file,  
  144.                         including the complete directory path required to create this
  145.  directory. 
  146.                         这个方法指:创建一个指定目录下的文件,与上面不同的是,
  147. 此方法可以创建多个目录哦,常用的创建文件的方法 
  148.                       */ 
  149.                        
  150.                       /** 
  151.                        * 最后,讲下isDirectory() 与  isFile()的小区别 
  152.                        * 小马刚开始不懂什么是Directory,后来试了下,讲直接的,
  153. 就是:是否是文件夹,isFile是否是文件,简单吧??O_O 
  154.                        */ 
  155.                        
  156.                        
  157.                        
  158.                     
  159.                        
  160.                   } 
  161.                
  162.     } 

    最后,不要忘记加Android中文件操作的权限:

 

 
  1. <!--往sdcard中写入数据的权限 --> 
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
  3.  <!--在sdcard中创建/删除文件的权限 --> 
  4.  

 
  1. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> 

 
  • 这些问题都是小马在开发过程中遇到过的问题,虽然很低级 ,
  • 但错误犯多了就不会犯了,最后 ,
  • 小马希望大家多查英文文档,不管自己 
  • 英语阅读能力好不好,讲真话,小马的英语,可以让你哭,
  • 但要学会善用工具学习,爱编程,就要补编程方面的缺陷,不要被这英语吓到 
  • 啦,今天就讲这些内容吧,File类中其它方法都很简单,
  • 大家可以试着用下词典查下意思,很容易知道它是干吗的方法的,相信小马 
  • 小马希望:能跟大伙交流学习,共同进步,完成菜鸟中的菜鸟,
  • 到高手中的高手的蜕变,高手,是从菜鸟努力导致的,不是生下来就有的, 
  • 希望我们共同进步

     

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




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





相关文章
|
24天前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
223 1
|
25天前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
17 1
|
6天前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
10 0
|
1月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
19 2
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
95 0
|
3月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
164 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
3月前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
119 1
|
3月前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
94 0
|
3月前
|
Java 测试技术 Android开发
Android项目架构设计问题之使用反射调用类的私有方法如何解决
Android项目架构设计问题之使用反射调用类的私有方法如何解决
26 0