一、路径分割符及路径的三种表现形式
1.两个常见的路径分隔符:
window: /
linux: \
2.三种表现形式:
(1)String path="E:\\test\\1.java";
(2)动态路径表示:path="E:"+file.separator+"Chaud"+File.separator+"1.java" (静态的话不支持试用,跨平台时支持使用)
(3)path="E:/test/1.java" 推荐使用
二、相对路径与绝对路径构造 File对象
1.相对路径
File(String parent, String child) ==>File("E:/test","1.java")
File(File parent, String child) ==> File(new File("E:/test"),"1.java")
2.绝对路径
File(String name);
3.当不写路径只写文件时默认在当前文件目录下
//相对路径
File f=new File("E:/test","1.java");
System.out.println(f.getPath());
System.out.println(f.getName());
File f2=new File("E:/test","1.java");
System.out.println(f2.getPath());
System.out.println(f2.getName());
//绝对路径
File src =new File("E:/test/1.java");
System.out.println(src.getName());
System.out.println(src.getPath());
没有盘符: 以 user.dir构建(默认)
File f3=new File("1.txt");
File f4=new File(".");
System.out.println(f3.getPath());
System.out.println(f3.getAbsolutePath());
System.out.println(f4.getAbsolutePath());
运行结果如下图:
三 常见方法
1、文件名
getName() 文件名+路径名
getPath() 路径名
getAbsolutePath() 绝对路径名
getAbsoluteFile() 绝对路径所对应的File对象
getParent() 父目录 ,相对路径的父目录,可能为null 如. 删除本身后的结果
2、判断信息
exists()
canWrite()
canRead()
isFile()
isDirectory()
isAbsolute():消除平台差异。e:以盘符开头,其他以/开头
3、长度 字节数 不能读取文件夹的长度,只能读文件的长度
length()
4、创建、删除
createNewFile() 不存在创建新文件,存在返回false
delete() 删除文件
5、临时文件:
static createTempFile(前缀3个字节长,后缀默认.temp) 创建在默认临时空间
static createTempFile(前缀3个字节长,后缀默认.temp,目录) 创建在目录下
deleteOnExit() 退出虚拟机删除,常用于删除临时文件
6、操作目录
mkdir() 创建目录,必须确保 父目录存在,如果不存在,创建失败
mkdirs() 创建目录,如果父目录链不存在一同创建
list() 文件|目录 名字符串形式
listFiles() 文件Flie 对象
static listRoots() 根路径
四 文件子目录的遍历
文件子目录的遍历在今后文件的查找等有重要的意义
import java.io.File;
import java.util.Arrays;
/**
* 输出子孙级目录|文件的名称(绝对路径)
* 1、listFiles()
* 2、递归
* static listRoots() 根路径
*/
public class Demo05 {
public static void main(String[] args) {
String path ="E:/xp/test";
File parent =new File(path);
//printName(parent);
File[] roots =File.listRoots();
System.out.println(Arrays.toString(roots));
for(File temp:roots){
printName(temp);
}
}
/**
* 输出路径
*/
public static void printName(File src){
if(null==src || !src.exists()){
return ;
}
System.out.println(src.getAbsolutePath());
if(src.isDirectory()){ //文件夹
for(File sub:src.listFiles()){
printName(sub);
}
}
}
}