java开发之File类详细使用方法介绍
File类简介
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。
File类的相关方法
1、构造方法
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent,String child) 根据指定的父路径和文件路径创建一个新File对象实例
File(File parent,String child) 根据指定的父路径对象和文件路径创建一个新的File对象实例
代码实现过程
/* - File的构造函数 - */ public static void main(String[] args) { //File(String pathname) 将指定路径名转换成一个File对象 File file = new File("D:\\1.txt"); System.out.println(file); //File(String parent,String child) 根据指定的父路径和文件路径创建File对象 File file1 = new File("D:\\a","1.txt"); System.out.println(file1); //File(File parent,String child) 根据指定的父路径对象和文件路径创建File对象 File parent = new File("D:\\a"); File file2 = new File(parent, "1.txt"); System.out.println(file2); File file3 = new File(new File("D:\\a"),"1.txt"); System.out.println(file3); }
运行结果
2、File类创建和删除功能
boolean createNewFile();指定路径不存在该文件时创建文件,返回true 否则false
boolean mkdir() 当指定的单击文件夹不存在时创建文件夹并返回true 否则false
boolean mkdirs() 但指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true 否则false
boolean delete() 删除文件或者删除单级文件夹
删除文件夹,这个文件夹下面不能有其他的文件和文件夹
代码实现过程
public static void main(String[] args) throws IOException { File file = new File("D:\\a\\1.txt"); File file1 = new File("1.txt"); boolean flag = file1.createNewFile(); System.out.println(flag); File file2 = new File("b"); boolean flag2 = file2.mkdir(); System.out.println(flag); File file3 = new File("c\\d\\e"); boolean d = file1.mkdir(); boolean c = file1.mkdirs(); System.out.println(d); System.out.println(c); File file4 = new File("c.txt"); System.out.println(file4.mkdir()); File file5 = new File("b"); System.out.println(file2.delete()); }
运行结果
3、File类的判断功能
boolean exists() 判断指定路径的文件或文件夹是否为空
boolean isAbsolute() 判断当前路径是否是绝对路径
boolean isDirectory() 判断当前的目录是否存在
boolean isFile() 判断当前的目录是否是一个文件
boolean isHidden() 判断当前路径是否是一隐藏文件
代码实现过程
public static void main(String[] args) throws IOException { // method(); // method2(); // method3(); // method4(); } //判断文件是否存在 public static void method() throws IOException { File file = new File("a.txt"); file.createNewFile(); boolean flag = file.exists(); System.out.println(flag); } //判断当前路径是否为绝对路径 public static void method2() throws IOException{ File file = new File("D:\\a\\1.txt"); boolean flag = file.isAbsolute(); System.out.println(flag); } //判断当前是文件夹还是文件 public static void method3() throws IOException{ File file = new File("1.txt"); File file1 = new File("b"); file1.mkdir(); boolean flag = file.isDirectory(); boolean flag2 = file1.isFile(); System.out.println(flag); System.out.println(flag2); } //判断当前路径是否为隐藏文件 public static void method4() throws IOException{ File file = new File("D:\\a\\1.txt"); System.out.println(file.isHidden()); }
运行结果
method()
method2()
method3()
method4()
4、File类的获取功能和修改名字功能
File getAbsoluteFile() 获取文件的绝对路径,返回File对象
String getAbsolutePath() 获取文件的绝对路径,返回路径的字符串
String getParent() 获取当前路径的父级路径,以字符串形式返回该父级路径
String getName() 获取文件或文件夹的名称
String getPath() 获取File对象中封装的路径
long lastModified() 以毫秒值返回最后修改时间
long length() 返回文件的字节数
boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路径
代码实现过程:
public static void main(String[] args) throws IOException { // method(); // method2(); // method3(); // method4(); } public static void method(){ File file = new File("D:\\a\\1.txt"); File file1 = new File("1.txt"); //以File对象返回的形式返回当前File对象所指向的绝对路径 System.out.println(file1.getAbsoluteFile()); //返回File对象所指向的绝对路径 System.out.println(file1.getAbsolutePath()); } public static void method2() throws IOException { File file = new File("a.txt"); File file1 = new File("b","c.txt"); System.out.println(file1.createNewFile()); File parent = new File("b"); File file2 = new File(parent,"c.txt"); if (!parent.exists()){ parent.mkdirs(); } System.out.println(file2.createNewFile()); System.out.println(file2.getParent()); System.out.println(file2.getParentFile()); } public static void method3() throws IOException{ File file = new File("1.txt"); File file1 = new File("D:\\a\\1.txt"); File file2 = new File("b"); System.out.println(file.getName()); System.out.println(file1.getName()); System.out.println(file2.getName()); System.out.println(file.getPath()); System.out.println(file1.getPath()); System.out.println(file2.getPath()); System.out.println(file.lastModified()); Date date = new Date(1556085068524L); System.out.println(date.toLocaleString()); System.out.println(file.length()); System.out.println(file2.length()); } public static void method4() throws IOException{ File file = new File("a.txt"); File file1 = new File("e.txt"); System.out.println(file.renameTo(file1)); }
运行结果
method()
method2()
method3()
method4()
5、File 类的其他获取功能
String[] list(); 以字符串的形式返回当前路径下所有的文件和文件夹的名称
File[] listFile 以File对象的形式返回当前路径下的所有文件和文件夹名称
Static File[] listRoots() 获取计算机中的所有盘符
代码实现过程
public static void main(String[] args) { //method(); // method2(); //method3(); } public static void method(){ File file = new File("b"); File file1 = new File("D:\\QQ\\1916247350"); File file2 = new File("e.txt"); String[] files = file1.list(); for (int i=0;i<files.length;i++){ System.out.println(files[i]); } } public static void method2(){ File file = new File("b"); File file1 = new File("D:\\QQ\\1916247350"); File file2 = new File("e.txt"); File[] files = file1.listFiles(); for (File file3 : files) { System.out.println(file3.getName()); } } public static void method3(){ File[] files = File.listRoots(); for (File file : files) { System.out.println(file); } }
运行结果
method()
method2()
method(3)
练习
1、输出指定目录下的所有java文件
public static void main(String[] args) { File file = new File("D:\\IDEA\\IDEAprogram"); method(file); } public static void method(File file){ //判断文件是够是目录文件 if (file.isDirectory()){ File[] files = file.listFiles(); for (File file1 : files) { //判断是否为文件 if (file1.isFile()){ //判断文件是否是以.java结尾的文件 if (file1.getName().endsWith(".java")){ System.out.println(file1.getName()); } }else if (file1.isDirectory()){ //回调,遍历file1 method(file1); } } } }
运行结果
2、删除指定的目录(包括子目录)
public static void main(String[] args) { File file = new File("D:\\a"); method(file); } //删除指定目录下的文件 public static void method(File file){ //删除自己所有的子文件和子目录 //获取子文件和子目录 if (file.isDirectory()){ File[] files = file.listFiles(); for (File file1 : files) { if (file1.isFile()){ System.out.println(file1.getName()); //干掉它 file1.delete(); }else if (file1.isDirectory()){ //继续查看 method(file1); } } //干掉自己 System.out.println(file.getName()); file.delete(); } }
代码运行结果
本文介绍了java开发过程中File类的详细使用方法,更多关于File类使用方法请查看下面的相关链接
相关文章
Spring Boot利用Lombok减少Java中样板代码的方法示例
spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,下面这篇文章主要给大家介绍了关于Spring Boot利用Lombok减少Java中样板代码的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。2017-09-09RabbitMQ中的channel信道、exchange交换机和queue队列详解
这篇文章主要介绍了RabbitMQ中的channel信道、exchange交换机和queue队列详解,connection是指物理的连接,一个client与一个server之间有一个连接,一个连接上可以建立多个channel,可以理解为逻辑上的连接,需要的朋友可以参考下2023-08-08springboot如何实现异步响应请求(前端请求超时的问题解决)
这篇文章主要给大家介绍了关于springboot如何实现异步响应请求(前端请求超时的问题解决)的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用springboot具有一定的参考学习价值,需要的朋友可以参考下2023-01-01
最新评论