JavaFile类详解构造⽅法常⽤⽅法绝对路径和相对路径创建⼀个⽂件⽂件夹File类
第⼀章 File类
1.1 概述
java.io.File 类是⽂件和⽬录路径名的抽象表⽰,主要⽤于⽂件和⽬录的创建、查和删除等操作。
java把电脑中的⽂件和⽂件夹(⽬录)封装为了⼀个File类,我们可以使⽤File类对⽂件和⽂件夹进⾏操作
我们可以使⽤File类的⽅法
创建⼀个⽂件/⽂件夹
删除⽂件/⽂件夹
获取⽂件/⽂件夹
判断⽂件/⽂件夹是否存在
对⽂件夹进⾏遍历
获取⽂件的⼤⼩
File类是⼀个与系统⽆关的类,任何的操作系统都可以使⽤这个类中的⽅法
重点:记住这三个单词
file:⽂件
directory:⽂件夹/⽬录
path:路径
1.2 构造⽅法
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
String pathname:字符串的路径名称
路径可以是以⽂件结尾,也可以是以⽂件夹结尾
路径可以是相对路径,也可以是绝对路径
路径可以是存在,也可以是不存在
创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
File f1 =new File("C:\\Users\\itcast\\IdeaProjects\\shungyuan\\a.txt");
System.out.println(f1);//重写了Object类的toString⽅法 C:\Users\itcast\IdeaProjects\
File f2 =new File("C:\\Users\\itcast\\IdeaProjects\\shungyuan");
System.out.println(f2);//C:\Users\itcast\IdeaProjects\shungyuan
File f3 =new File("b.txt");
System.out.println(f3);//b.txt
public File(String parent, String child) :从⽗路径名字符串和⼦路径名字符串创建新的 File实例。
根据 parent 路径名字符串和 child 路径名字符串创建⼀个新 File 实例。
参数:把路径分成了两部分
String parent:⽗路径
String child:⼦路径
好处:
⽗路径和⼦路径,可以单独书写,使⽤起来⾮常灵活;⽗路径和⼦路径都可以变化
String parent ="c:\\";
String child ="a.txt";
File file =new File(parent,child);
System.out.println(file);//c:\a.txt
public File(File parent, String child) :从⽗抽象路径名和⼦路径名字符串创建新的 File实例。
根据 parent 抽象路径名和 child 路径名字符串创建⼀个新 File 实例。
参数:把路径分成了两部分
File parent:⽗路径
String child:⼦路径
好处:
⽗路径和⼦路径,可以单独书写,使⽤起来⾮常灵活;⽗路径和⼦路径都可以变化
⽗路径是File类型,可以使⽤File的⽅法对路径进⾏⼀些操作,再使⽤路径创建对象
File parent =new File("c:\\");
File file =new File(parent,"hello.java");
System.out.println(file);//c:\hello.java
构造举例,代码如下:
// ⽂件路径名
String pathname ="D:\\";
File file1 =new File(pathname);
// ⽂件路径名
String pathname2 ="D:\\aaa\\";
File file2 =new File(pathname2);
// 通过⽗路径和⼦路径字符串
String parent ="d:\\aaa";
String child ="";
File file3 =new File(parent, child);
// 通过⽗级File对象和⼦路径字符串
File parentDir =new File("d:\\aaa");
String child ="";
File file4 =new File(parentDir, child);
⼩贴⼠:
1. ⼀个File对象代表硬盘中实际存在的⼀个⽂件或者⽬录。
2. ⽆论该路径下是否存在⽂件或者⽬录,都不影响File对象的创建。
1.3 常⽤⽅法
获取功能的⽅法
public String getAbsolutePath() :返回此File的绝对路径名字符串。
获取的构造⽅法中传递的路径
⽆论路径是绝对的还是相对的,getAbsolutePath⽅法返回的都是绝对路径
当路径是绝对的时候,返回的就是⼀模⼀样绝对路径
当传⼊的路径是相对的时候,返回的就是相对于当前项⽬⽂件所在位置的⽂件路径
File f1 =new File("D:\\BBB\\EmployeeServer\\src\\a.txt");
String absolutePath1 = f1.getAbsolutePath();
System.out.println(absolutePath1);//C:\Users\itcast\IdeaProjects\
File f2 =new File("a.txt");
// 传⼊相对路径,意即a.txt存放在当前项⽬⽂件中
String absolutePath2 = f2.getAbsolutePath();
System.out.println(absolutePath2);// 返回当前⽬录下的⽂件路径。D:\BBB\ //f2.createNewFile();
public String getPath() :将此File转换为路径名字符串。
获取的构造⽅法中传递的路径
toString⽅法调⽤的就是getPath⽅法
源码:
public String toString() {
return getPath();
}
File f1 =new File("C:\\Users\\itcast\\IdeaProjects\\shungyuan\\a.txt");
File f2 =new File("a.txt");
String path1 = f1.getPath();
System.out.println(path1);//C:\Users\itcast\IdeaProjects\
String path2 = f2.getPath();
System.out.println(path2);//a.txt
System.out.println(f1);//C:\Users\itcast\IdeaProjects\
System.out.String());//C:\Users\itcast\IdeaProjects\
public String getName() :返回由此File表⽰的⽂件或⽬录的名称。
获取的就是构造⽅法传递路径的结尾部分(⽂件/⽂件夹)
File f1 =new File("C:\\Users\\itcast\\IdeaProjects\\shungyuan\\a.txt");
String name1 = f1.getName();
System.out.println(name1);//a.txt
File f2 =new File("C:\\Users\\itcast\\IdeaProjects\\shungyuan");
String name2 = f2.getName();
System.out.println(name2);//shungyuan
public long length() :返回由此File表⽰的⽂件的长度。
获取的是构造⽅法指定的⽂件的⼤⼩,以字节为单位
注意:
⽂件夹是没有⼤⼩概念的,不能获取⽂件夹的⼤⼩
如果构造⽅法中给出的路径不存在,那么length⽅法返回0
// 要保证路径下有该⽂件
File f1 =new File("C:\\develop\\a\\1.jpg");
long l1 = f1.length();
System.out.println(l1);//780831字节
File f2 =new File("C:\\develop\\a\\2.jpg");
System.out.println(f2.length());//0
File f3 =new File("C:\\develop\\a");
System.out.println(f3.length());//0 ⽂件夹没有⼤⼩概念的
⽅法演⽰,代码如下:
public class FileGet {
public static void main(String[] args){
File f =new File("d:/aaa/bbb.java");
System.out.println("⽂件绝对路径:"+f.getAbsolutePath());
System.out.println("⽂件构造路径:"+f.getPath());
System.out.println("⽂件名称:"+f.getName());
System.out.println("⽂件长度:"+f.length()+"字节");
File f2 =new File("d:/aaa");
System.out.println("⽬录绝对路径:"+f2.getAbsolutePath());
System.out.println("⽬录构造路径:"+f2.getPath());
System.out.println("⽬录名称:"+f2.getName());
System.out.println("⽬录长度:"+f2.length());
}
}
输出结果:
⽂件绝对路径:d:\aaa\bbb.java
⽂件构造路径:d:\aaa\bbb.java
⽂件名称:bbb.java
⽂件长度:636字节
⽬录绝对路径:d:\aaa
⽬录构造路径:d:\aaa
⽬录名称:aaa
⽬录长度:4096
API中说明:length(),表⽰⽂件的长度。但是File对象表⽰⽬录,则返回值未指定。绝对路径和相对路径
绝对路径:从盘符开始的路径,这是⼀个完整的路径。
相对路径:相对于项⽬⽬录的路径,这是⼀个便捷的路径,开发中经常使⽤。
public class FilePath {
public static void main(String[] args){
// D盘下的bbb.java⽂件
File f =new File("D:\\bbb.java");
System.out.AbsolutePath());
// 项⽬下的bbb.java⽂件
File f2 =new File("bbb.java");
System.out.AbsolutePath());
}
}
输出结果:
D:\bbb.java
D:\idea_project_test4\bbb.java
判断功能的⽅法
public boolean exists() :此File表⽰的⽂件或⽬录是否实际存在。
⽤于判断构造⽅法中的路径是否存在
存在:true
怎么对文件夹加密
不存在:false
public boolean isDirectory() :此File表⽰的是否为⽬录。
⽤于判断构造⽅法中给定的路径是否以⽂件夹结尾
是:true
否:false
public boolean isFile() :此File表⽰的是否为⽂件。
⽤于判断构造⽅法中给定的路径是否以⽂件结尾
是:true
否:false
注意:
电脑的硬盘中只有⽂件/⽂件夹,两个⽅法是互斥
这两个⽅法使⽤前提,路径必须是存在的,否则都返回false
public boolean isFile() :此File表⽰的是否为⽂件。
这部分需要⾃⼰创建⼏个⽂件/⽂件夹去尝试,很简单
⽅法演⽰,代码如下:
public class FileIs {
public static void main(String[] args){
File f =new File("d:\\aaa\\bbb.java");
File f2 =new File("d:\\aaa");
// 判断是否存在
System.out.println("d:\\aaa\\bbb.java 是否存在:"+f.exists());
System.out.println("d:\\aaa 是否存在:"+f2.exists());
/
/ 判断是⽂件还是⽬录
System.out.println("d:\\aaa ⽂件?:"+f2.isFile());
System.out.println("d:\\aaa ⽬录?:"+f2.isDirectory());
}
}
输出结果:
d:\aaa\bbb.java 是否存在:true
d:\aaa 是否存在:true
d:\aaa ⽂件?:false
d:\aaa ⽬录?:true
创建删除功能的⽅法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论