黑马程序员技术交流社区

标题: IO part5 [打印本页]

作者: fmi110    时间: 2015-8-10 11:50
标题: IO part5
IO
  1. File 类
  2.         该类的出现是对文件系统中的文件以及文件夹进行对象的封装。
  3.                 以对象的思想来操作文件以及文件夹。

  4.         1、构造函数
  5.                 File(String fileName);
  6.                 File(String parent,String child);
  7.                 File(File parent,String child);

  8.         2、特殊字段:可跨平台使用
  9.                 static String pathSeparator
  10.                          与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
  11.                 static char pathSeparatorChar
  12.                         与系统有关的路径分隔符。
  13.                 static String separator
  14.                         与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
  15.                 static char separatorChar
  16.                         与系统有关的默认名称分隔符。
  17.         3、常见方法:
  18.                 1 创建:
  19.                         boolean creatNewFile() throws IOException
  20.                                 如果文件已存在,则不创建
  21.                         boolean mkdir(); 建文件夹
  22.                         boolean mkdirs(); 建立多级目录

  23.                 2 删除:
  24.                         boolean delete(); 删除文件或文件夹
  25.                                 注意:对于文件夹只能删除不带内容的空文件夹,
  26.                                         对于非空文件夹,只能从里往外删除(递归删除)
  27.                                         对于不存在或已删除的文件 返回 false
  28.                         void deleteOnExit(); 删除动火证交给系统完成。无论是否发生异常,系统在退出时
  29.                                 执行删除动作。

  30.                 3 判断:
  31.                         boolean canExexute();
  32.                         boolean canWrite();
  33.                         boolean canRead();

  34.                         boolean exists(); 判断文件是否存在
  35.                         boolean isFile(); 判断 File 对象封装的是否是文件
  36.                         boolean isDirectiry();判断 File 对象封装的是否目录(文件夹)
  37.                         boolean isHidden(); 判断文件或者文件夹是否隐藏。

  38.                                 注意:在获取硬盘文件或文件夹时,对于系统目录中的文件,java是无法访问的,
  39.                                 所以在遍历文件夹时,应该避开隐藏文件
  40.                 4 获取
  41.                        
  42.                         getName(); 获取文件或文件夹的名字
  43.                         getPath();
  44.                         getAbsolutePath(); 获取绝对路径
  45.                         getParent(); 获取File对象封装文件或文件夹的父目录
  46.                                 注意:如果封装的是相对路径,则返回null
  47.                         long length(); 获取文件大小
  48.                         long lastModified(); 获取最后一次修改的时间

  49.                         static File[] listRoots();获取系统中的有效盘符
  50.                         String[] list(); 获取指定目录下当前的文件或文件夹名称
  51.                         String[] list(FilenameFilter filter);
  52.                                 可以根据指定的过滤器,过滤文件及文件夹名称
  53.                         File listFiles();返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
  54.                         File listFiles(FilenameFilter filter);
  55.                                 返回过滤后的文件对象

  56.                 5 重命名:
  57.                         renameTo(File);移动并重命名文件

  58. 删除文件夹,或者遍历一个目录,经常需要用到递归功能
  59. 使用 递归时需注意的问题:
  60.         1 一定要限定条件,否则内存溢出,或者只递不归
  61.         2 使用递归时,需要注意递归次数不要过多,否则可能导致内存溢出

  62. ******************************************************************************************************
  63. 练习:列出指定目录下的文件以及文件夹
  64. import java.io.*;
  65. import java.util.*;
  66. class ShowFile
  67. {
  68.         public static void main(String[] args) throws IOException
  69.         {
  70.                 File file = new File("C:\\Users\\hyning\\Desktop\\java基础笔记\\day21\\");
  71.                 show(file,0);
  72.                 System.out.println("Hello World!");
  73.         }
  74.         public static void show(File file,int level) throws IOException
  75.         {
  76.                 System.out.println("Dir: ... "+file.getName()+"..."+level);
  77.                 //获取指定路径下的文件对象
  78.                 File[] f = file.listFiles();
  79.                 ++level;
  80.                 //遍历文件夹
  81.                 for(int i=0; i<f.length; i++)
  82.                 {
  83.                         if(f[i].isDirectory())
  84.                         {
  85.                                 show(f[i],level);
  86.                         }
  87.                         else if(f[i].isFile()&&(!f[i].isHidden()))
  88.                         {
  89. //                                System.out.println(f[i].getAbsolutePath() +" ... "+f[i].getName()+"..."+level);
  90.                                 System.out.println("File: ... "+f[i].getName()+"..."+level);
  91.                         }
  92.                 }
  93.         }
  94. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2