File类用法

File类用法

File类是java中与文件操作相关的一个类,它位于java.io包中。

一、几个简单概念
文件类型分为:
    目录类型           
    真实文件,可以没有扩展名。同一目录下不可能存在同名的目录和真实文件           
    虚拟内存文件(临时文件)

绝对目录——以根目录开头,到指定文件的路径;
相对目录——从当前位置出发,到指定文件的路径。

二、File中的属性、方法及其使用
File类的属性:
    public static String pathSeparator
          当前操作系统的路径分隔符,Windows中使用“\”,Linux中使用“/”;
    public static String separator
          当前操作系统的名字分隔符,Windows中使用“;”,Linux中使用“:”;

File类的构造方法:
    File(File parent,String child)
   File(String pathname)
   File(String parent,String child)

注意:File类的实例不可改变,一旦创建,File对象表示的抽象路径名将永不改变。

File类的其他方法:
    boolean exists() 判断File对象指向的文件是否存在;
    String getName() 得到文件名字(不带路径的名字);
    boolean isDirectory() 判断File对象指向的文件是否为目录;
    boolean isFile() 判断File对象指向的文件是否是真实文件;
    File[] listFiles() 将File对象指向的文件下一级的所有目录和真实文件
          作为一个数组返回,即数组中的每个文件对象对应这个目录下的文件和目录,
          如果File对象时一个真实文件,则返回null值;
    boolean delete() 从磁盘上删除File对象所指向的文件;
    boolean createNewFile() 创建真实文件,若已经存在同名文件则覆盖,
          若存在同名目录则抛出异常信息,创建失败。

举例1
File类中几个常用方法的简单使用:

public void testCreateAndDelete(String fileName){
   //通过传入的名字构造File对象
    File temFile = new File(fileName);
   //判断文件是否存在
    if(temFile.exists()){
      //如果是一个目录
       if(temFile.isDirectory()){
	System.out.println("这是一个目录:"+temFile.getAbsolutePath());
      }
      //如果是文件
       if(temFile.isFile()){
	//删除文件
	temFile.delete();
	String theName = temFile.getName();
         String absPath = temFile.getAbsolutePath();
	System.out.println("文件已删除,名字是"+theName+"绝对路径是:"+absPath);
      }
   }else{
      try{
          temFile.createNewFile();
          System.out.println("文件已创建!"+temFile.getAbsolutePath());
      }catch(Exception ef){
	  System.out.println("创建文件失败");
      }
   }
}


举例2
利用File[] listFiles() 采用递归方法遍历磁盘中的文件,统计磁盘中的文件总数。

public class FileTest{
     public static void main(String[] args){
	     FileTest ft = new FileTest();
	     String path = "F:\\";
	     int count = ft.countFile(path);
	     System.out.println(path+"共有"+count+"个文件!");
     }
     public int countFile(String path){
	     int count = 0;
	     //传入路径
	     File m_f = new File(path);
	     //定义一个File类型的数组,用来接受一个文件内所有的目录文件,
	     File[] subFile = m_f.listFiles();
	     //如果数组为空或者长度为0,则返回0
	     if(null==subFile||subFile.length==0){
	           return 0;
	     }
	     for(int i = 0;i<subFile.length;i++){
	          //判断是否是目录,如果是目录
	            if(subFile[i].isDirectory()){
	              //数组中每个元素的决定路径,用一个String类型记录。 
                         //调用递归方法遍历子目录
	              String subDir = subFile[i].getAbsolutePath();
	            count+=countFile(subDir);
	          }
	          //如果是文件
	           if((subFile[i].isFile())){
		          //文件个数+1,并输出文件信息
		            count++;
		          String fileName = subFile[i].getAbsolutePath();
		          System.out.println("文件:"+fileName);
                }
          }
          return count;
    }
}



如有不足欢迎指正!




你可能感兴趣的:(File类用法,File类使用举例)