现在的位置: 首页 > 综合 > 正文

File的基本操作

2012年10月10日 ⁄ 综合 ⁄ 共 5058字 ⁄ 字号 评论关闭

            文件的简单操作

   在java里,随处可见类。File类就是对文件操作的类。File的对象就代表一个文件或一个目录。下面我们要讨论的是File对文件操作的基本方法。

   文件分为目录文件,标准文件和虚拟内存文件,当然我们主要是对前面两种文件进行操作。

   下面我们分条细道:

 1)创建对象

File(File
parent,
String
child)
 
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String
pathname)
 
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String
parent,
String
child)
 
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI
uri)
 
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

上面是API中的四种构造方法。

使用较为简单 如:

 File temFile = new File("D:/javastudy/测试文件101");

 File temFile = new File(new File("D:\\javastudy"), "测试文件101");
 File temFile = new File("D:\\javastudy", "测试文件101");
 现在我们的temFile就代表了D盘下javastudy的测试文件101(不管它是否存在)。

注意到一点:在java里表示路径时,\\和/是一个含义。

2)由File对象去创建文件或文件夹

boolean createNewFile() 
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
static

File
createTempFile(String
prefix,
String
suffix)
 
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static

File
createTempFile(String
prefix,
String
suffix,
File
directory)
 
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

举例 如:

Java代码  收藏代码
  1. <span style="">  </span><span style=""> temFile.createNewFile();  
  2.    File.createTempFile("测试文件102"".txt")  
  3.    File.createTempFile("测试文件102"".txt" ,new File "D:\\javastudy")).getAbsolutePath());  
  4. </span>  

效果明显哦。

注意:当文件已经存在时 就不再会创建新的文件了。后面两个函数都是File类的静态函数,可以直接用类名调用,其返回值是File类型的。而且我们生成的文件名后面会带有比较长的随机数。

3)创建文件夹

  1. <span style="">//在当前目录下创建测试文件夹101   
  2. //mkdir()只能在已经存在的目录中创建创建文件夹。   
  3. //mkdirs()可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。  
  4. File temFile = new File("测试文件夹222");  
  5. temFile.mkdir();  
  6. //temFile.mkdirs();  
  7. System.out.println(temFile.getAbsolutePath());</span>  

3)设置文件的属性

  1. <span style="">temFile.setReadable(false);  
  2. temFile.setWritable(true);  
  3. temFile.setReadOnly();</span>  

4)对文件属性的判断

  1. <span style="">if(subFile[i].canExecute()){  
  2.     System.out.println(subFile[i].getAbsolutePath() + "     是  可执行的 ");  
  3. }  
  4. if(subFile[i].canRead()){  
  5.     System.out.println(subFile[i].getAbsolutePath() + "     是  可读的 ");  
  6. }  
  7. if(subFile[i].canWrite()){  
  8.     System.out.println(subFile[i].getAbsolutePath() + "     是  可写的 ");  
  9. }</span>  
  1. <span style=""if(subFile[i].isAbsolute())  
  2.    System.out.println(subFile[i].getAbsolutePath() + "     是  一个绝对路径");  
  3.  if(subFile[i].isDirectory())  
  4.     System.out.println(subFile[i].getAbsolutePath() + "     是  一个目录");  
  5.  if(subFile[i].isFile())</span>  
  1. <span style="">  System.out.println(subFile[i].getAbsolutePath() + "     是  一个文件");     
  2.  if(subFile[i].isHidden())  
  3.    System.out.println(subFile[i].getAbsolutePath() + "     是  一个隐藏文件");</span>  

 5)用于文件排序时的文件名首字母比较大小,返回值是int,为在字母表中排列的差。

  1. <span style="">//前者首字母减去后者  若果遇到的是中文首字母开头 呐结果可就大了  
  2. System.out.println(subFile[i].getAbsolutePath()+"  与   "+subFile[0].getAbsolutePath()+" 的比较结果是: "+subFile[i].compareTo(subFile[0]));  
  3. if(subFile[i].equals(subFile[0])){  
  4.     System.out.println(subFile[i].getAbsolutePath()+"  与   "+subFile[0].getAbsolutePath()+" 同一个");  
  5. }</span>  

 6)输出文件路径的七种方法,注意返回值

  1. <span style="">//调用File里面的各种get方法返回文件或目录路径  
  2. //七种输出路径大方式  
  3. System.out.println("用getAbsoluteFile()返回文件或目录路径所输出的结果" + subFile[i].getAbsoluteFile());  
  4. System.out.println("用getAbsolutePath()返回文件或目录路径所输出的结果" + subFile[i].getAbsolutePath());  
  5. System.out.println("用getCanonicalFile()返回文件或目录路径所输出的结果" + subFile[i].getCanonicalFile());  
  6. System.out.println("用getCanonicalPath()返回文件或目录路径所输出的结果" + subFile[i].getCanonicalPath());  
  7. System.out.println("用toString()返回文件或目录路径所输出的结果" + subFile[i].toString());  
  8. System.out.println("用subFile[i]直接返回文件或目录路径所输出的结果" + subFile[i]);  
  9. System.out.println("用getPath()返回文件或目录路径所输出的结果" + subFile[i].getPath());</span>  

 7)输出文件的名字,父目录的名字

  1. <span style="">System.out.println("用getName()返回文件或目录路径的名字" + subFile[i].getName());  
  2. System.out.println("用getParent()返回文件或目录路径的父目录" + subFile[i].getParent());  
  3. System.out.println("用getParentFile()返回文件或目录路径的父目录" + subFile[i].getParentFile());</span>  

8)得到该文件或目录路径未分配的字节数,文件或目录路径所指向的分区的大小,文件或目录路径所指向的分区上课用于此虚拟机的字节数

  1. <span style="">System.out.println("用getFreeSpace()返回该文件或目录路径未分配的字节数" + subFile[i].getFreeSpace());  
  2. System.out.println("用getTotalSpace()返回文件或目录路径所指向的分区的大小" + subFile[i].getTotalSpace());  
  3. System.out.println("用getUsableSpace()返回文件或目录路径所指向的分区上课用于此虚拟机的字节数" + subFile[i].getUsableSpace());</span>  

9)得到其子目录

  1. <span style="">System.out.println("用length()函数返回文件或目录的长度" + subFile[i].length());  
  2. System.out.println("用list()函数返回文件或目录中的目录  返回值为一个String" + subFile[i].list());  
  3. System.out.println("用File中的静态函数listRoots()函数返回系统磁盘目录  返回值为一个File数组 我估计这里就应该是打印该数组的首地址" + File.listRoots()); </span>  

10)对于最后一次修改时间的获得和修改

  1. <span style="">System.out.println( subFile[i] + "用lastModified()函数返回文件或目录最后一次修改的时间" + (new java.util.Date(subFile[i].lastModified())));  
  2. //修改最后一次修改时间  
  3. subFile[0].setLastModified(System.currentTimeMillis());</span>  
  1. <span style="">//获得当前时间  
  2. System.out.println(subFile[i] +"用setlastModified()函数修改时间后返回文件或目录最后一次修改的时间" + (new java.util.Date(subFile[i].lastModified())));</span>  

11)修改文件名,删除文件

  1. <span style="">//修改文件名 可以跨目录  
  2. if(temFile.renameTo(new File("D:/","NewNameFile")))  
  3.     System.out.println("重命名成功啦  快去看看");  
  4. System.out.println(temFile.getAbsolutePath());</span>  
  1. <span style="">//删除文件  
  2. //如果此路径名表示一个目录,则该目录必须为空才能删除  
  3. temFile.delete();  
  4. //在虚拟机终止时删除  
  5. temFile.deleteOnExit();</span>  

结束语:通过File对象对文件或者是文件夹的操作基本上就是上面的那些啦。

抱歉!评论已关闭.