目录
File类
概念:
File类就是描述文件或文件夹的,只要我们在Java中要操作文件或文件夹,就找File类。
该类主要用于文件和目录的创建、文件的查找和文件的删除等。
构造方法:
public File(String pathname)
:表示根据文件或文件夹的路径名创建一个File对象。
使用File类的构造函数可以把指定的字符串封装成File类的对象,但是这个字符串表示的路径或者文件到底是否存在,File类是不进行判断的。
注意:File类表示文件和目录路径名的抽象表示形式。那么该路径代表的文件或文件夹不一定存在。
public File(String parent, String child)
:从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child)
:从父抽象路径名和子路径名字符串创建新的 File实例。最简单的,一步到位
public static void main(String[] args) throws IOException { //新建文件 File file = new File("C:\\Users\\luoxuan\\Desktop\\a.txt"); boolean b = file.createNewFile(); System.out.println(b);//true boolean delete = file.delete(); System.out.println(delete);//true }
常用方法:
public String getAbsolutePath()
:获取的当前调用这个方法的File对象的全路径(绝对路径或者真实路径) 返回的是路径的字符串;
public String getPath()
:获取到当前File类的对象中封装的内容。
public String getName()
:获取的是File类的对象中封装的文件或目录的最后一级名称。
public long length()
:获取文件大小long size = file.length();代码演示:
public class FileTest { public static void main(String[] args) throws IOException { //创建file类对象 File file = new File("D:\\123.txt");//不能文件夹和文件一起创建, boolean file1 = file.createNewFile(); System.out.println(file1);//true //得到file对象的全路径 File absoluteFile = file.getAbsoluteFile(); System.out.println(absoluteFile);//D:\123.txt //得到file对象的文件名 String name = file.getName(); System.out.println(name);//123.txt //获取文件的大小 long length = file.length(); System.out.println(length);//0 } }
绝对路径和相对路径:
绝对路径:从盘符开始的路径,这是一个完整的路径(如:D:\bbb.java)。
相对路径:相对于项目目录的路径(如:bbb.java),这是一个便捷的路径,开发中经常使用。
代码演示:
public class Lujing { public static void main(String[] args) { //D盘下的文件 File file = new File("D:\\xiaocao.txt"); System.out.println(file.getAbsoluteFile());//D:\xiaocao.txt //项目下的文件,路径会根据项目自动生成 File file1 = new File("xiaocao.txt"); System.out.println(file1.getAbsoluteFile());//D:\javase\wenjiang\javase\xiaocao.txt } }
其他的各种方法:
public boolean exists()
:是否存在 如果File类对象中的文件或者文件夹在硬盘上存在 返回 true ,否则返回false;
public boolean isDirectory()
:是否是文件夹 如果是文件夹 返回 true 否则返回false;
public boolean isFile()
:是否是文件 如果是文件 返回 true , 否则返回false;
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。A:true :表示创建文件成功; false :表示创建文件失败,失败原因基本是因为当前的目录有了相同的文件;
B:如果指定的路径不存在,这时就会抛异常 Java.io.IOException:系统找不到指定的路径。这时是不会去创建文件的
public boolean delete()
:删除由此File表示的文件或目录。
public boolean mkdir()
:创建由此File表示的目录。
public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录。代码演示:
public class Zhonghe { public static void main(String[] args) throws IOException { File file = new File("D:\\hhh.txt"); //判断该文件是否在D盘下存在 System.out.println(file.exists());//false//因为不存在该文件,所以返回false,第二次就是true //判断是否是文件夹 System.out.println(file.isDirectory());//false //判断是否是文件 System.out.println(file.isFile());//true //创建目录 File file1 = new File("D:\\File1"); //判断该文件夹是否存在 System.out.println(file1.exists());//false boolean mkdir = file1.mkdir(); System.out.println("file1创建的目录是否成功"+mkdir);//file1创建的目录是否成功true //创建多级目录 File file2 = new File("D:\\File2\\java"); System.out.println(file2.mkdirs());//true //删除目录 System.out.println(file2.delete());//true 把java目录删除了,File2还在,所以该删除只删除一级目录 System.out.println(file2.delete()); System.out.println(file1.delete());//true File1没有了,他只删除最里面的那个目录 } }
注意:
delete方法,如果此File表示目录,则目录必须为空才能删除。
列举方法:
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录。代码举例:
//该File目录中的所有子文件或目录 System.out.println("========"); File file3 = new File("D:\\File2\\f"); boolean mkdirs = file3.mkdirs(); String[] list = file3.list(); for (String s : list) { System.out.println(s);//nnnn.txt } //该File目录中的所有的子文件或目录 System.out.println("====="); File[] files = file3.listFiles(); for (File file4 : files) { System.out.println(file4);//D:\File2\f\nnnn.txt }