File类详解

File类
      1)、用来将文件或者文件夹封装成对象,java.io.File类:文件和目录路径名的抽象表示形式
      2)、方便对文件与文件夹的属性信息进行操作 

      3)、File对象可以作为参数传递给流的构造函数
     
File的应用
    1) 它来源于 java.io.File; 
    2) 它的作用: 用来管理计算机的资源
            (主要: 实现磁盘空间的管理、文件或文件夹的查看、创建、删除、修改等操作)。 
    3) 为了便于管理计算机资源,它提供了相应的方法。

FIle类常用方法,通过File对象可以访问文件的属性
         public boolean canRead()   //是否可以读取
         public boolean canWrite()  //是否可以写
         public boolean exists()    //是否存在
         public boolean isDirectory()//是否是文件夹  
         public boolean isFile()     //是否是文件
         public boolean isHidden()   //是否隐藏 
         public long lastModified()   //最后修改的时间
         public long length()         //长度
         public String getName()      //得到名字
         public String getPath()      //得到路径
通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)。
         public boolean createNewFile() throws IOException
         public boolean delete()
         public boolean mkdir(), mkdirs()    注意两个的区别!!
         mkdir():创建一个目录
         mkdirs();创建一系列目录


         案例如下:   
     最终要创建的文件是:  当前工作位置\目录1\目录2\MyFile.txt  文件.
    步骤:
   1), 创建对象,用来管理所要创建的一系列目录 和 文件.
       f1 = new File( dirs,  fileName ); 
   2),创建 FileName文件的所有父目录
       f1.getParentFile().mkdirs(); 
   3),创建文件
        f1.createNewFile();

代码如下:

 

public class FileTest2 { 
public static void main(String[] args) { 
//用户当前的工作位置 
String userDir = System.getProperty("user.dir"); 
System.out.println("用户当前的工作位置是: " + userDir ); 

//1 准备要创建的文件夹和相关的文件. 
String dirs = "目录1" + "\\" + "目录2"; 
String fileName = "MyFile.txt"; 

//2 声明 
File f1 = null; 

//3 创建对象, 用来管理所要创建的一系列目录 和 文件. 
f1 = new File( dirs, fileName ); 

if( f1.exists() ){ 
System.out.println("已存在.则获取文件的相关信息如下:\n"); 

System.out.println( fileName + ",这个文件的绝对路径是: " + f1.getAbsolutePath() ); 
System.out.println( fileName + ",这个文件的大小是: " + f1.length() + "字节数."); 
}else{ 
System.out.println("不存在,则往下就开始创建....."); 
f1.getParentFile().mkdirs(); //创建 FileName文件的所有父目录 
System.out.println("在 " + userDir + " 用户当前工作目录下创建了 " + dirs + " 一系列目录. "); 

try { 
f1.createNewFile(); //创建文件 
System.out.println( fileName + ",这个文件创建完毕."); 
} catch (IOException e) { 
System.out.println( fileName + " 文件创建失败! "); 
} 
} 
} 
}

 

  从java6开始新增了一个方法  listRoots()
   8bits == 1Byte
   1024B == 1KB
   1024KB == 1MB
   1024MB == 1GB
   1024GB == 1TB

 

案例,查看磁盘空间利用情况

 

代码如下:

 

public class FileTest3 { 
public static void main(String[] args) { 
File[] drs = File.listRoots(); //listRoots 根目录的列表 

//遍历 
for(File tem : drs ){ 
long ts = tem.getTotalSpace()/1024/1024/1024; //GB 得到总的空间 
long fs = tem.getFreeSpace()/1024/1024/1024; //GB 得到剩余空间 
long us = ts - fs ; //GB 得到已用空间 
System.out.println( tem + "\t" + ts + "GB\t" + us + "GB\t" + fs + "GB"); 
} 
} 
}

 

 
案例,查看C盘下文件夹和文件的信息

代码如下:

 

public class FileTest1 { 
public static void main(String[] args) { 
int fileCounter = 0; //文件的总数 
int dirCounter = 0; //文件夹的总数 
long totalLength = 0; //总的长度 

//1 准备要查看的文件夹(目录) 
String path = "c:\\"; 

//2声明 File对象 f1 
File f1 = null; 

//3创建File对象来管理给定的目录。 
f1 = new File( path ); 

//4 判断所管理的目录存在吗 
if( f1.exists() ){ 
//将所管理目录下的所有文件名和子目录名收集起来组成一个字符串数组 
String[] fileDirNames = f1.list(); 

//遍历 
for(String tem : fileDirNames){ 
File f2 = new File( path + tem ); //创建对象再次管理path下的文件夹 

long times = f2.lastModified(); //获取文件或文件夹的最后修改时间,以毫秋为单位反馈 
Date d1 = new Date( times ); 
// %tF 代表日期年月日,%tT 代表时间时分秒,因为两个用同一个d1 变量,所以加了一个<号 
System.out.printf("%tF %<tT", d1); 

if( f2.isDirectory() ){ //判断f2是否是文件夹 
System.out.print("\t<DIR>\t"); 
dirCounter++; //计数 
}else{ 
long len = f2.length(); //f2 的长度 
totalLength += len; 
fileCounter++;//计数 
System.out.print("\t\t" + len ); 
} 

System.out.println("\t" + f2.getName() ); 
} 

System.out.println("\n========================================"); 
System.out.println("\t\t" + fileCounter + "个文件\t 总长度: " + totalLength + "字节数。" ); 
System.out.println("\t\t" + dirCounter + "个目录。"); 
}else{ 
System.out.println("不存在。"); 
} 
} 
}

 

 

 

你可能感兴趣的:(java,File类)