File类
- 1.表示文件
- 2.表示文件夹
- 3.表示路径(可以是错误路径)
路径分割符
- /Users/…./Desktop
- C:\
- mac: / :
- win: \ ;
绝对路径(硬盘上的真实位置)
- /Users/lfajio/Desktop/Test
相对路径
- 路径是相对于当前工程
- 注意:使用相对路径 不能以 / 开头
- 如果路径以 / 开头 系统会默认以绝对路径去寻找文件
1.//路径分割符
String s1 = File.pathSeparator; System.out.println(s1); String s2 = File.separator; System.out.println(s2);
2.//File类构造方法
File file1 = new File(“src/gorilla.txt”);
//判断该路径是否存在
boolean b = file1.exists();
//获取绝对路径
String absolutePath = file1.getAbsolutePath();
//获取传入路径
String path = file1.getPath(); System.out.println(path);
System.out.println(b);
System.out.println(file1.toString());
System.out.println(absolutePath);
3.//判断方法
//判断一个路径是否存在
>File file1 = new File("/Users/lanou/Desktop/Test/wl.txt");
//判断一个路径是否都是文件
boolean file = file1.isFile();
System.out.println(file);
//判断一个路径是否是文件夹
boolean directory = file1.isDirectory(); System.out.println(directory);
4.//创建方法
> File file1 = new File("/Users/lanou/Desktop/Test/wanglong.txt");
//创建文件
//注意:
//1.该文件只会创建一次
//2.该方法只能创建文件
//3.不填后缀名 创建出来的也是文件
boolean createNewFile = file1.createNewFile();
System.out.println(createNewFile);
//创建单个文件夹方法
//注意:即使带上文件后缀 创建出来的也是文件夹
File file2 = new File(“/Users/lanou/Desktop/Test/b/a/c”);
boolean b2 = file2.mkdir();
System.out.println(b2);
//创建多层级文件夹方法(单层级也能创建出来)
boolean b3 = file2.mkdirs();
System.out.println(b3);
5.//删除方法
//1.可以删除文件
//2.可以删除空文件夹
File file1 = new File(“/Users/lanou/Desktop/Test/wanglong.txt”);
boolean delete = file1.delete();
System.out.println(delete);
File file2 = new File(“/Users/lanou/Desktop/Test/b/a”);
boolean delete2 = file2.delete();
System.out.println(delete2);
6.//获取文件夹下所有文件
File file1 = new File(“/Users/lanou/Desktop/Test”);
//只能获取一级目录的文件
String[] list = file1.list();
System.out.println(Arrays.toString(list));
File[] listFiles = file1.listFiles();
//以文件类型返回
System.out.println(Arrays.toString(listFiles));
7. 文件过滤器
class MyFileFilter implements FileFilter{
/*
* 实现接口的过滤方法
* 返回false 数组中没有该文件数据
* 返回true 数组中保存了 所有一级目录的文件(跟不传一样)
* 参数 File pathname : 一级目录下所有文件
*
* 根据接口中这个方法返回值
* true 就会把该文件传入listFiles(File pathname)所生成的数组中
* false 不传入
*
* 综上: listFiles数组中保存什么
* 完全根据这个方法返回值来看
*/
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
System.out.println(“这是文件夹”);
return false;
}
System.out.println(“这是文件”);
return true;
}
}