File类用法

[size=x-large]File类用法[/size]
[size=large]
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类中几个常用方法的简单使用:[/size]

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("创建文件失败");
}
}
}

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

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;
}
}



如有不足欢迎指正! :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值