File类是一个文件操作类,只能操作文件,不能操作文件的内容,要操作文件的内容得必须要用流来操作
File 类
java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给流的构造函数
File 类
访问文件名:
Ø getName()
Ø getPath()
Ø getAbsoluteFile()
Ø getAbsolutePath()
Ø getParent()
Ø renameTo(File
newName)
文件检测
Ø exists()
Ø canWrite()
Ø canRead()
Ø isFile()
Ø isDirectory()
文件操作相关
Ø createNewFile()
Ø delete()
获取常规文件信息
Ø lastModified()
Ø length()
Ø 目录操作相关
Ø mkDir()
Ø mkDirs()
Ø list()
Ø listFiles()
在File类中并没有提供判断文件是否为空的方法,但可以借助length()方法的返回值进行判断。如果文件不存在或文件为空时,length()方法返回0
File file = new File("F:\\test.txt");
if(file.exists() && file.length() == 0) {
System.out.println("文件为空!");
}
mkdir() 此方法不能在不存在的文件夹下建立新的文件夹。
mkdirs() 如果父文件夹不存在并且最后一级子文件夹不存在,它就自动新建所有路经里写的文件夹;如果父文件夹存在,它就直接在已经存在的父文件夹下新建子文件夹。
File.separator 在Windows里面表示 \ (右斜) 在Linux里面表示 / (左斜)
File.pathSeparator 在Windows里面表示 ; (分号) 在Linuxlimi里面表示 : (冒号)
实例:列出目录下所有的文件(包括子目录里面的文件),递归实现
@Test
public void fileTest05(){
File file = new File("d:"+File.separator);
allFile(file);
}
public static void allFile(File file){
if(file != null){
if(file.isDirectory()){
File[] f = file.listFiles();
if(f != null){
for(int i = 0; i<f.length;i++){
allFile(f[i]);
}
}
}else{
System.out.println(file.getName());
}
}
}