[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]
[size=large]
举例2
利用File[] listFiles() 采用递归方法遍历磁盘中的文件,统计磁盘中的文件总数。[/size]
如有不足欢迎指正! :D
[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