File遍历文件
File类是什么
File在java中以抽象的方式代表文件名和目录路,通过File
类操作,File
能够新建、删除、重命名文件和目,但是File不能访问文件本身。如果需要访问文件内容本身,则需要使用输入/输出流。
文件名称相关方法
方法 | 解释 |
String getName() | 获取File对象表示的文件名称或路径(如果是路径(目录)返回最后一级的路径名) |
String getPath() | 获取File抽象对象所对应的路径名称 |
String getParent() | 获取File抽象对象对应的父目录 |
String getAbsoluteFile() | 获取File抽象对象的绝对路径 |
String getAbsolutePath() | 获取File抽象对象的绝对路径名称 |
String getParent() | 获取File抽象对象的父目录(上一级目录) |
boolean renameTo(File newName) | 将File设置一个新的名称,true成功 |
文件位置
@Test
public void Test01(){
String fileName = "11.text";
File file = new File(fileName);
System.out.println("获取File抽象名称"+file.getName());
System.out.println("获取File抽象的路径"+file.getPath());
System.out.println("获取File抽象对象的绝对路径"+file.getAbsoluteFile());
System.out.println("获取File抽象对象的绝对路径名称"+file.getAbsolutePath());
System.out.println("获取File抽象对象的父路径"+file.getParent());
System.out.println(file.renameTo(new File("22.text")));
System.out.println(file.renameTo(new File("11.text")));
}
//显示结果
文件检测方法
方法 | 解释 |
boolean exists() | 判断File对象所对应的文件或目录是否存在 |
boolean canWrite() | 判断File对象对应的文件或目录是否可以写 |
boolean canRead() | ……是否可以读 |
boolean isFile() | 是否是文件 |
boolean isDirectory() | 是否是目录 |
isAbsolute() | 是否是绝地路径 |
long lastModified() | 返回文件的最后修改时间 |
long length() | 返回文件内容的长度 |
文件的操作方法
方法 | 解释 |
boolean createNewFile() | 当file对象对应的文件不存在时,创建一个文件 |
boolean delete() | 删除File对象所对应的文件或路径(目录 |
static File crateTempFile(String prefix,String stuffx,File directory) | directory在指定的目录中创建一个临时的空文件,使用给定前缀+系统随机生成的名称,后缀名称 |
void deleteOnEcit() | 注册一个删除钩子删除临时文件,只有当JVM正常退出才会删除临时文件 |
目录操作
|boolean mkdir()|创建一个File对象所对应的目录|
|String[] list()|列出File对象的所有子文件和路径名称(目录)|
|File[] listFile()|列出File对象的所有子文件和目录|
|static File[] listRoots()|列出系统所有的根路径|
创建临时文件
public static void main(String[] args) throws IOException {
File fileTemp = null;
File file = new File("img");
if(file.isFile()){
System.out.println("该文件名称已经存在了");
return;
}
if(file.isDirectory()){
//创建临时文件
fileTemp = File.createTempFile("temp", ".txt",file);
}
if(file.mkdirs()){
fileTemp = File.createTempFile("temp", ".txt",file);
}
//当JVM不是正常退出时,无法删除临时文件
fileTemp.deleteOnExit();//删除临时文件
}
遍历文件
public static void getAllFile(File file){
//文件不存在
if(!file.exists()){
System.out.println("file is exists");
return;
}
//当file是一个文件时
if(!file.isDirectory()){
if(file.isFile()){
System.out.println(file.getName());
}
return;
}
//获取File目录下的子目录和文件
File[] listFile = file.listFiles();
for(File file2:listFile){
if(file2.isDirectory()){
getAllFile(file2);//递归
}
if(file2.isFile()){
System.out.println(file2.getName());
depath++;
}
}
}