File类
一.入门案例
Java中提供了java.io.File类,用来代表文件或目录。
注意: 1、该类用来进行文件或目录的操作 2、该类本身没有对文件或目录的数据读写功能。 |
---|
入门案例:
/* * File类入门 * * exists(); 判断文件/目录 是否存在 * true:文件/目录 是存在的 * false:文件/目录 是不存在的 * */ public static void main(String[] args) {
//1、创建File对象,代表 D盘下的测试.txt文件 File f1 = new File("D:\\测试.txt"); //2、创建File对象,代表 D盘下的 测试 文件夹 File f2 = new File("D:\\测试");
File f3 = new File("D:\\呵呵呵呵呵呵你好么我18K"); boolean b1 = f1.exists(); boolean b2 = f2.exists(); System.out.println(b1); System.out.println(b2); System.out.println(f3.exists()); } |
|
---|
格式: new File(String 路径); 注意: 1、\\ 和 / 效果一模一样的 (建议:使用\\) 2、文件有扩展名,文件夹没有 |
---|
二. 进阶案例
获取项目根下的某个文件:

/* * 获取当前项目 根下的 你好.txt 文件 * */ public static void main(String[] args) { // 绝对路径:带盘符的完整路径 File f1 = new File("D:\\IDEA56\\day38_1\\你好.txt"); System.out.println(f1.exists());
//相对路径:不带盘符的路径 // 获取当前项目目录下的 你好.txt File f2 = new File("你好.txt"); System.out.println(f2.exists());
//每个项目相对路径都是 当前项目的根 //当前项目下 有一个src目录,src目录下有一个Demo1.java文件,如何获取这个Java文件 //当前项目路径: D:\\day38_1 //绝对 File fx1 = new File("D:\\day38_1\\src\\Demo1.java"); //相对 File fx2 = new File("src\\Demo1.java");
} |
|
---|
路径分为: 绝对路径:带盘符的完整路径 相对路径:不带盘符的路径(相对路径默认从IDEA项目根目录开始) |
---|
如果尝试获取 当前项目的下的某个文件或文件夹,建议 相对路径(更简单)
三. 常见方法
1.判断方法:
方法名 |
描述 |
boolean exists() |
判断文件或目录是否存在 |
boolean isFile() |
判断对象是否是文件 |
boolean isDirectory() |
判断对象是否是目录 |
boolean isHidden() |
判断对象是否为隐藏文件或目录 |
举例使用:
/*判断方法 方法名 描述 boolean exists() 判断文件或目录是否存在 true:存在 false:不存在(①文件/目录真不存在;②路径写错了) boolean isFile() 判断对象是否是文件 true: 是一个文件
boolean isDirectory() 判断对象是否是目录 true:是一个目录
boolean isHidden() 判断对象是否为隐藏文件或隐藏目录 true:是隐藏的 * */ public static void main(String[] args) { File f1 = new File("D:\\测试.txt");//文件 File f2 = new File("D:\\测试");//目录 //1、exists System.out.println(f1.exists()); //2、isFile() System.out.println(f1.isFile());//true System.out.println(f2.isFile());//false //3、isDirectory System.out.println(f1.isDirectory());//false System.out.println(f2.isDirectory());//true //4、isHidden() System.out.println(f1.isHidden());//false } |
|
---|
2.属性读取方法
方法名 |
描述 |
String getName() |
获得文件或目录的名称 |
long length() |
获取文件字节数。仅判断文件,不能判断目录 如果对象是目录那么返回结果不确定 |
String getAbsolutePath() |
获取文件或目录绝对路径 |
String getPath() |
获取文件或目录路径 |
long lastModified() |
获取文件最后一次修改时间(毫秒值) |
static File[] listRoots() |
获取操作系统所有盘符 |
举例使用:
/* * 方法名 描述 String getName() 获得文件或目录的名称 获取目录名 或者 获取文件名.扩展名
long length() 获取文件字节数。仅判断文件,不能判断目录 如果对象是目录那么返回结果不确定 String getAbsolutePath() 获取文件或目录绝对路径(带盘符路径)
String getPath() 获取文件或目录路径 long lastModified() 获取文件最后一次修改时间(毫秒值) static File[] listRoots() 获取操作系统所有盘符 * * */ public static void main(String[] args) { //创建File对象,获取文件 File f1 = new File("D:\\测试\\1\\你好.txt"); //1、getName() System.out.println(f1.getName()); //2、length() System.out.println(f1.length()); //3、getAbsolutePath() System.out.println(f1.getAbsolutePath()); //4、getPath() System.out.println(f1.getPath()); //5、lastModified() long x = f1.lastModified(); Date date = new Date(); date.setTime(x); System.out.println(date.toLocaleString()); //6、listRoots() File[] farr = File.listRoots(); System.out.println(Arrays.toString(farr)); } |
|
---|
3.操作方法
方法名 |
描述 |
boolean createNewFile() |
当文件不存在时创建空文件。 创建成功返回true,否则返回false。 |
boolean mkdir() |
当目录不存在时创建空目录。 创建成功返回true,否则返回false。 注:无法重复创建 或 一次创建多个目录,所以被mkdirs替代 |
boolean mkdirs() |
当目录链不存在时创建空目录链。 创建成功1个或以上目录返回true,否则返回false。 |
boolean renameTo(File file) |
修改文件、目录路径。成功返回true,否则返回false。 相当于:剪切/重命名 注意: 1、若路径跨盘符不能保证成功; 2、目录即使非空,也可以顺利剪切/重命名 3、路径目录必须存在(例如:把文件剪切到A目录内,A目录必须存在) 4、剪切/重命名 不能在目录内重名 |
boolean delete() |
删除文件或目录。无法删除非空目录。 删除成功返回true,否则返回false |
举例使用:
public static void main(String[] args) throws IOException { File f1 = new File("测试01.txt"); //1、创建文件 createNewFile boolean b1 = f1.createNewFile(); System.out.println(b1); //2、创建目录:mkdir() 无法重复创建,无法创建多个文件夹 File f2 = new File("D:\\测试888"); boolean b2 = f2.mkdir(); System.out.println(b2); //3、创建目录:mkdirs() 无法重复创建 File f3 = new File("D:\\测试888\\1\\2\\3\\4"); boolean b3 = f3.mkdirs(); System.out.println(b3); //4、剪切/重命名renameTo File f4 = new File("测试01.txt"); //剪切到D盘根下 boolean b4 = f4.renameTo(new File("D:\\测试01.txt")); System.out.println(b4); //5、删除文件delete File f5 = new File("你好.txt"); boolean b5 = f5.delete(); System.out.println(b5); //6、删除目录delete (目录里必须是空的) File f6 = new File("D:\\测试"); boolean b6 = f6.delete(); System.out.println(b6); } |
|
---|
4.获取子文件和子目录
方法名 |
描述 |
String[] list() |
获取当前目录下所有子文件和子目录名称。 |
File[] listFiles() |
获取当前目录下所有子文件和子目录。 |
举例使用:
/* * 方法名 描述 String[] list() 获取当前目录下所有子文件和子目录名称。 (不常用) File[] listFiles() 获取当前目录下所有子文件和子目录。 【最频繁】 temp.delete(); * */ public static void main(String[] args) { //1、list() File f1 = new File("D:\\"); String[] list1 = f1.list(); System.out.println(Arrays.toString(list1)); //2、listFiles() File[] flist = f1.listFiles(); for (File temp : flist) { System.out.println(temp.getName()); } } |
|
---|
总结:
File类: 判断方法
方法名 |
描述 |
boolean exists() |
判断文件或目录是否存在 true:存在 false:不存在 (①文件、目录真不存在 ②路径写错) |
boolean isFile() |
判断对象是否是文件 True:是文件 False:不是文件,就是目录 |
boolean isDirectory() |
判断对象是否是目录 |
boolean isHidden() |
判断对象是否为隐藏文件或目录 |
属性读取方法
方法名 |
描述 |
String getName() |
获得文件或目录的名称 文件名:文件名.扩展名 |
long length() |
获取文件字节数。仅判断文件,不能判断目录 如果对象是目录那么返回结果不确定 |
String getAbsolutePath() |
获取文件或目录绝对路径 带盘符路径 |
String getPath() |
获取文件或目录路径 |
long lastModified() |
获取文件最后一次修改时间(毫秒值) new Date().setTime(x); |
static File[] listRoots() |
获取操作系统所有盘符 |
操作方法
方法名 |
描述 |
boolean createNewFile() |
当文件不存在时创建空文件。 创建成功返回true,否则返回false。 |
boolean mkdir() |
当目录不存在时创建空目录。 创建成功返回true,否则返回false。 注:无法重复创建 或 一次创建多个目录,所以被mkdirs替代 |
boolean mkdirs() |
当目录链不存在时创建空目录链。 创建成功1个或以上目录返回true,否则返回false。 |
boolean renameTo(File file) |
修改文件、目录路径。成功返回true,否则返回false。 相当于:剪切/重命名 注意: 1、若路径跨盘符不能保证成功; 2、目录即使非空,也可以顺利剪切/重命名 3、路径目录必须存在(例如:把文件剪切到A目录内,A目录必须存在) 4、剪切/重命名 不能在目录内重名 支持: 剪切并改名 剪切不改名 原地改名 |
boolean delete() |
删除文件或目录。无法删除非空目录。 删除成功返回true,否则返回false |
获取子文件和子目录
方法名 |
描述 |
String[] list() |
获取当前目录下所有子文件和子目录名称。 |
File[] listFiles() |
获取当前目录下所有子文件和子目录。 |
|
---|
请给努力中的自己点个赞哦!
每天进步一点点`~~~~~
来源:oschina
链接:https://my.oschina.net/ithuang/blog/3165588