Java – File类的介绍和使用
在Java中,File
类是 java.io
包的一部分,它表示文件和目录路径名的抽象表示形式。File
类可以用来创建、删除、重命名文件或目录,查询文件的属性(如文件是否存在、文件的长度等),以及列出目录的内容。然而,File
类并不能访问文件内容本身。如果需要读取或写入文件内容,需要使用输入输出流(如 FileInputStream
、FileOutputStream
、FileReader
、FileWriter
等)
1. 创建File对象
创建一个 File
对象并不涉及实际的文件创建或文件系统的任何I/O操作。它只是简单地创建一个表示特定文件或目录路径的对象。
File file = new File("path/to/your/file.txt");
2. File的静态成员
static String pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static String separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
因为在不同系统中路径分隔符是不相同的 , 所以为了 避免在Windows中所写的路径而到了linux中无法使用 , 这里推荐使用pathSeparator 与 separator方法
String path1 = "E:\\Idea\\io";
System.out.println(path1);
System.out.println("==================");//要求代码写完,一次编写,到处运行
String path2 = "E:"+File.separator+"Idea"+File.separator+"io";
System.out.println(path2);
3.File的构造方法
File(String parent, String child) 根据所填写的路径创建File对象
parent:父路径
child:子路径
File(File parent, String child) 根据所填写的路径创建File对象
parent:父路径,是一个File对象
child:子路径
File(String pathname) 根据所填写的路径创建File对象
pathname:直接指定路径
public class Demo02File {public static void main(String[] args) {//File(String parent, String child) 根据所填写的路径创建File对象//parent:父路径//child:子路径File file1 = new File("E:\\Idea\\io", "1.jpg");System.out.println("file1 = " + file1);//File(File parent, String child) 根据所填写的路径创建File对象//parent:父路径,是一个File对象//child:子路径File parent = new File("E:\\Idea\\io");File file2 = new File(parent, "1.jpg");System.out.println("file2 = " + file2);//File(String pathname) 根据所填写的路径创建File对象//pathname:直接指定路径File file3 = new File("E:\\Idea\\io\\1.jpg");System.out.println("file3 = " + file3);}
}
4. 常用方法
exists()
: 检查文件或目录是否存在。isDirectory()
: 检查此路径名是否表示一个目录。isFile()
: 检查此路径名是否表示一个文件。length()
: 返回文件的长度。createNewFile()
: 创建新文件。delete()
: 删除文件或目录。mkdir()
: 创建目录。mkdirs()
: 创建多级目录。list()
: 列出目录中的所有文件和目录名。listFiles()
: 列出目录中的所有文件和目录,返回File
数组。
import java.io.File; public class FileExample { public static void main(String[] args) { File file = new File("example.txt"); if (file.exists()) { System.out.println("File exists."); } else { try { boolean created = file.createNewFile(); if (created) { System.out.println("File created."); } else { System.out.println("File already exists."); } } catch (Exception e) { e.printStackTrace(); } } // 获取文件长度 System.out.println("File length: " + file.length() + " bytes."); // 删除文件 boolean deleted = file.delete(); if (deleted) { System.out.println("File deleted."); } else { System.out.println("Failed to delete file."); } }
}
5.如何遍历file
String[] list() -> 遍历指定的文件夹,返回的是String数组
File[] listFiles()-> 遍历指定的文件夹,返回的是File数组 ->这个推荐使用
细节:listFiles方法底层还是list方法
调用list方法,遍历文件夹,返回一个Stirng数组,遍历数组,将数组中的内容一个一个封装到File对象中,然后再将File对象放到File数组中
private static void file05() {File file = new File("E:\\Idea\\io\\aa");//String[] list() -> 遍历指定的文件夹,返回的是String数组String[] list = file.list();for (String s : list) {System.out.println(s);}//File[] listFiles()-> 遍历指定的文件夹,返回的是File数组 ->这个推荐使用System.out.println("==============");File[] files = file.listFiles();for (File file1 : files) {System.out.println(file1);}}