前言 File类的创建方法
File类介绍 boolean createNewFile()
File类的构造方法 boolean mkdirs()
File (String pathname) Flie的删除方法
File (String parent,String child) Flie类判断方法
File (File parent,String child) 代码总结
前言
在今天学习开始前,我们先了解与文件相关的内容,打开我们后面学习Java File类的大门。
首先呢,我们了解一下“文件”与“文件夹”这两个东西
文件:File 用于存储数据,在同一文件夹/同一目录中文件名不能相同
文件夹:Directory(也称目录)用于存储文件的容器,防止文件重名而设置,可以实现文件归类,但是!划重点,文件夹不存储任何数据!
那产生了文件和文件夹,必然在计算机里要有位置存放它们
而表示它们位置的方式,就是“路径”
路径:Path 一个目录或者文件在磁盘中的位置,随便以磁盘中的文件为例
C:\Users\Hyper 为C盘中Hyper用户文件夹的路径位置
D:\code\Java\4.16\text1.java 为text1.java这个文件的路径
File类介绍
* 那回到标题,File类是什么?*
File类:就是描述目录文件和路径的对象
File类的构造方法
File (String pathname) 传递字符串的路径名
File (String parent,String child) 传递字符串的父路径,字符串的子路径
File (File parent,String child) 传递File类型的父路径,传递字符串的子路径
File (String pathname)
我们使用时,先创建一个File对象,去磁盘里随便复制一个路径试一下,输出时是原封不动地输出里面的内容
public class FileText {
public static void main(String[] args) {
fileMethod();
}
public static void fileMethod(){
File file = new File("D:\\code\\Java\\4.16\\text1.java");
System.out.println(file);
}
}
我们稍作调整,在原有的基础上随意输入,我们可以发现,即使没有这个路径,它依旧可以进行输出,当然,这要是直接写进一个项目里,肯定会出错,所以后面我们会学习到对其判断的一个功能,对路径是否存在进行筛选。
public static void fileMethod(){
File file = new File("D:\\code\\Java\\4.16\\text1.hohufhknj");
System.out.println(file);
}
File (String parent,String child)
这个需要传递两个参数,分别是:字符串的父路径,字符串的子路径
那首先,什么是父路径什么又是子路径?
我们以一个文件夹的路径为例
D:\Java\idea 就是 D:\Java\idea\Crack 的父路径
父路径具有唯一性,而子路径就不一定了,子路径无限,父路径后边可能是大大小小几十个子路径
在应用代码时,父路径的字符串书写了以后,子路径不用再重复,可以直接书写子路径
在我们运行之后,File会自动把parent和child的字符串连接在一起,然后输出一个完整的路径
public static void fileMethod2(){
String parent = "D:\\Java\\idea";
String child = "Crack";
File file = new File(parent,child);
System.out.println(file);
}
当然,这里也可以进行修改,不用把parent和child写死在代码里,我们可以把它们写进参数里,然后让调用者传进去,这样子也是没问题的
public static void fileMethod2(String parent,String child){
File file = new File(parent,child);
System.out.println(file);
}
File (File parent,String child)
与上面的类似,只是传入的参数有所不同
但这种写法灵活度更高,采用了file对象,可以对其进一步处理
public static void fileMethod3(){
File parent = new File("D:\\Java\\idea");
String child = "Crack";
File file = new File(parent,child);
System.out.println(file);
}
File类的创建方法
boolean createNewFile() 创建一个文件,文件路径写在File的构造方法中
boolean mkdirs() 创建目录,目录的位置和名字写在File的构造方法中
boolean createNewFile()
我们先使用boolean createNewFile(),创建一个文件练练手,为了方便存储,我在F盘建了一个Text文件夹,一会儿我们要在里面创建一个1.txt文件
代码如下,创建file对象,使用createNewFile()需要传出一个boolean值,这个布尔值是告诉你创建文件成功与否,成功则返回true,失败返回false
public static void fileMethod() throws IOException {
File file = new File("F:\\Text\\1.txt");
boolean newFile = file.createNewFile();
System.out.println("newFile = " + newFile);
}
现在我们看一下,文件夹里是空的,当我们运行代码后,文件夹里就会自动生成目标文件,然后返回一个布尔值true
那什么时候返回false呢?上文中我们提到,文件夹里的文件不能同名,所以当我们第二次运行代码时,newFile == false了
注意:使用createNewFile(),只能创建文件,即使代码中写的是
File file = new File("F:\\Text\\新建文件夹");
那么创建出来的也不会是文件夹,依然是一个文件类型,所以,如果我们需要创建文件夹,则要“另辟蹊径”
tips:拓展小知识,生成的文件其实与后缀名没有什么关系,后缀名只是方便系统寻找相应的软件打开它,写txt一般默认是记事本打开,后缀写docx,双击这个文件就是用word软件打开
boolean mkdirs()
boolean mkdirs() 与boolean同理,要创建文件夹,就把代码换成这一句即可,同时,规则也依然不变,即使你是文件夹,也依然不能与文件同名,如果同名,也会返回false
public static void fileMethod() throws IOException {
File file = new File("F:\\Text\\Directory");
boolean newFile = file.mkdir();
System.out.println("newFile = " + newFile);
}
这里有个小玩法,大家可以尝试一下,可以用mkdirs()这种方法创建多层的文件夹,即在文件夹中生成文件夹再生成文件夹······但是一定不要超过255个字符,否则。。。(不要轻易尝试)
还要一个小知识,mkdir()不带s,只能创建一层文件夹
File file = new File("F:\\Text\\Directory\\a\\b\\c");
Flie的删除方法
file.delete()
public static void fileMethod2(){
File file = new File("F://Text//1.txt");
boolean del = file.delete();
System.out.println("del = " + del);
}
代码格式不变,输入需要删除的文件名(文件夹名)字符,运行代码进行删除,删除成功返回true,删除失败返回false
这种方法和我们平时删除文件(文件夹)的方式不同,磁盘中的文件(文件夹)直接删除会进入回收站,而使用此代码删除则直接抹除文件,有风险,误操作会导致文件丢失
Flie类判断方法
boolean exists() 判断构造方法中的路径是否存在
boolean isDirectory() 判断构造方法中的路径是不是文件夹
boolean isFile() 判断构造方法中的路径是不是文件
boolean isAbsolute() 判断构造方法中的路径是不是绝对路径
这些方法直接使用就可,下面着重讲一下绝对路径
路径分为
- 绝对路径
·在磁盘中的路径具有唯一性
·Windows中盘符开头F://Text
·Linux或者Unix系统,/开头,磁盘跟/usr/local
·互联网路径:www.xxx.com
- 相对路径
·必须有参照物
·F://Text//a//b//c以b为参考点
·则父路径为F://Text//a 父路径可以用../表示
·子路径为F://Text//a//b//c
代码总结
File类的构造方法 | File类的创建方法 | Flie的删除方法 | Flie类判断方法 |
File (String pathname) | boolean createNewFile() | file.delete() | boolean exists() |
File (String parent,String child) | boolean mkdirs() | boolean isDirectory() | |
File (File parent,String child) | boolean isFile() | ||
boolean isAbsolute() |
今天的Java文章分享就到此结束了, 喜欢的小伙伴记得一键三连,点赞收藏评论,如果想了解更多内容,可以用未来百万富豪的手指,点点小小的关注!你们的支持就是我最大的动力!