首页 > 其他 > 详细

File类详解

时间:2015-05-28 02:06:39      阅读:191      评论:0      收藏:0      [点我收藏+]

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("不存在。");
}
}
}

?

File类详解

原文:http://jingjing0907.iteye.com/blog/2214921

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!