温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中如何使用File类的构造函数

发布时间:2021-07-14 16:36:11 来源:亿速云 阅读:151 作者:Leah 栏目:编程语言

这篇文章给大家介绍java中如何使用File类的构造函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1、IO流(Input Output)

IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中

2、IO流技术的运用场景

导出报表、上传大头照、下载、解析xml文件.....等等 (数据保存到硬盘,该数据可以做到永久性保存。数据一般以文件的形式保存到硬盘上。sun使用一个File类来描述文件或者文件夹)

3、File类的构造函数(方法)

  • File(String pathname):指定文件或者文件夹的路径来创建一个File文件

  • File(File parent, String child):根据parent抽象路径和child路径名字符串,创建一个新的File实例

  • File(String parent, String child):

目录分割符:在Windows机器上的目录分隔符是\,在Linux机器上的目录分隔符是/

注意:在Windows上面\与/都可以作为目录分隔符。而且,如果写/的时候,只需要写1个正斜杠即可,而写\的时候,需要写2个反斜杠。

package com.dhb.file; import java.io.File; import java.io.IOException; /**  * @author DSHORE / 2018-6-22  *  */ public class Demo1 {   public static void main(String[] args) throws IOException {     File file = new File("F:/a.txt");//指定路径  [构造函数]     file.createNewFile();//创建文件(空文件)  [方法]         File files = new File("F:\\","b.txt");//第一个参数是路径,第二个参数是要创建文件的文件名  [构造函数]     files.createNewFile();//创建文件(空文件)  [方法]   } }

4、File类的一些常用方法

创建:

  • createNewFile():在指定位置创建空文件,成功返回true,如果已存在就不再创建了返回false

  • mkdir():在指定位置创建目录,这之后创建最后一级目录,如果上级目录不存在就抛出异常.

  • mkdirs():在指定位置创建目录,这也会创建路径中所有不存在的父目录

  • renameTo(File dest):重命名文件或文件夹。文件不同时,相当于文件的剪切,剪切的时候不能操作非空文件夹。移动/重命名成功返回true,失败返回false

删除:

  • delete() :删除一个文件或者空文件夹,如果文件夹不为空,则不能删除,成返回true,失败返回false

  • deleteOnExit(): 在虚拟机终止时,请求删除此抽象路径名的文件或者目录,保证文件异常时也可以删除文件

判断:

  • exists():判断指定的文件或者文件夹是否存在

  • isFile():判断是否是一个文件;如果不存在,则为false

  • isDirectory():判断是否是一个文件夹

  • isHidden():判断指定的文件是否是隐藏文件

  • isAbsolute():判断指定的文件或文件夹是否是在绝对路径下

获取:

  • getName():获取文件或文件夹名称

  • getPath():返回的是绝对路径,可以是相对路径,但是目录要指定

  • getAbsolutePath():获取绝对路径

  • length():获取文件的大小(字节为单位)

  • getParent():获取文件的父路径

  • lastModified():获取文件最后一次修改的时间

注意:

  • . :一个点表示当前路径

  • .. :两个点表示上一级路径

路径问题:

  • 绝对路径:该文件在硬盘上的完整路径;绝对路径一般是以盘符开头的。

  • 相对路径:资源文件相对于当前程序所在路径。

注意:如果程序当前所在路径与资源文件不再同一个盘下面,是没法写相对路径的

5、实例

package com.dhb.file; import java.io.File; import java.io.IOException; /**  * @author DSHORE / 2018-6-22  *  */ public class Demo2 {   public static void main(String[] args) throws IOException {     //创建     File file=new File("F:\\aa");     System.out.println("创建文件成功了吗?"+file.createNewFile());     File dir=new File("F:\\aaa\\aaa");     System.out.println("创建文件夹成功了吗?"+dir.mkdir());     File dirs=new File("F:\\aaa\\aaa\\aa\\cc\\ddd");     System.out.println("创建多级文件夹成功了吗?"+dirs.mkdirs());          File destFile=new File("F:\\aaaw");     System.out.println("重命名文件夹成功吗?"+dir.renameTo(destFile));     System.out.println("重命名文件成功吗?"+file.renameTo(destFile));          //删除     File deletefile=new File("F:\\aaa");     System.out.println("删除文件/空文件夹成功吗?"+deletefile.delete());     file.deleteOnExit();//jvm     System.out.println("哈哈哈");          //判断     File fil=new File("F:\\a.txt");     file.createNewFile();//创建一个文件     System.out.println("该文件/文件夹存在吗?"+fil.exists());     System.out.println("判断是否是一个文件:"+fil.isFile());     System.out.println("判断是否是一个文件夹:"+fil.isDirectory());     System.out.println("隐藏文件吗?"+fil.isHidden());     System.out.println("是绝对路径吗?"+fil.isAbsolute());   } }

"获取"的例子

package com.dhb.file; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /**  * @author DSHORE / 2018-6-25  *  */ public class Demo3 {   public static void main(String[] args) {     /*File file=new File("..\\homeWork.java");     System.out.println(file.exists());*/     File f=new File("..\\..\\a.txt");//上上级路径下的a.txt文件     System.out.println("获取文件名:"+f.getName());//返回值:a.txt     System.out.println("获取相对路径:"+f.getPath());//返回值:..\..\a.txt  说明:a.txt文件在C:\MyEclipse10路径下     /** 当上面两条输出语句的绝对路径下没有a.txt这个文件时,也是输出这个结果,因为他获取的是当前对象f的值*/     System.out.println(f.exists());//返回值:true   说明:C:\MyEclipse10路径下有a.txt文件     System.out.println("获取绝对路径:"+f.getAbsolutePath());//返回值:C:\MyEclipse10\MyCode\MyJavaCode\..\..\a.txt     System.out.println("获取文件的大小(字节为单位):"+f.length());//返回值:10     System.out.println("获取文件的父路径:"+f.getParent());//返回值:..\..  说明:其父路径为C:\MyEclipse10     long lm=f.lastModified();     Date date=new Date(lm);     SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");       System.out.println("获取文件最后一次修改的时间:"+sdf.format(date));//返回值:2018年06月25日 11:29:49   } }

运行结果图

java中如何使用File类的构造函数

附录1

与文件夹操作相关:

  • static File[] listRoots():列出所有的根目录(Windows所有系统盘符)

  • list():返回指定目录下的所有文件或文件夹名,包含隐藏文件(返回的文件/文件夹名是字符串,不可再对文件/文件夹进行操作)

  • listFiles():返回指定目录下的所有文件或文件夹名,包含隐藏文件(可以再对文件/文件夹进行操作)

package com.dhb.file; import java.io.File; /**  * @author DSHORE / 2018-6-25  *  */ public class Demo4 {   public static void main(String[] args) {     File[] roots=File.listRoots();     for (File file : roots) {       System.out.println(file);       /* C:\   //运行结果        * D:\        * E:\        * F:\        * G:\        * H:\        * */     }     File file=new File("F:\\MyJavaCode");     String[] s=file.list();     for (String string : s) {       System.out.println(string);//返回指定目录下的所有文件或文件夹名,包含隐藏文件(返回的文件/文件夹名是字符串,不可再对文件/文件夹进行操作)     }     File[] f=file.listFiles();     for (File file2 : f) {       System.out.println(file2.getName());//返回指定目录下的所有文件或文件夹名,包含隐藏文件(可以再对文件/文件夹进行操作)     }   } }

运行结果图

java中如何使用File类的构造函数

java中如何使用File类的构造函数

后面两条输出语句的结果都一样

附录2

例1:

package com.dhb.file; import java.io.File; /**  * @author DSHORE / 2018-6-25  *  */ /* 需求1:指定一个文件夹,然后返回文件夹下面所有java文件  * */ public class Demo5 {   public static void main(String[] args) {     listJava(new File("F:\\MyJavaCode"));   }   public static void listJava(File dir){     File[] file=dir.listFiles();     for (File file2 : file) {       //方法1       if(file2.getName().endsWith(".java")){         System.out.println(file2.getName());       }       //方法2:正则表达式       String fileName=file2.getName();       if(fileName.matches(".+\\.java")){         System.out.println(fileName);       }     }   } }

运行结果图

java中如何使用File类的构造函数

java中如何使用File类的构造函数   

例2:

package com.dhb.file; import java.io.File; /**  * @author DSHORE / 2018-6-26  *  */ /*  * 需求2:指定一个文件夹,然后列出文件夹下面的所有子文件与文件夹,但是 格式要如下  *   * 文件:  *   文件名1  *     文件名2  *     文件名2  *  * 文件夹:  *     文件夹1  *     文件夹2  *     文件夹3  * */ public class Demo6 {   public static void listJava2(File dir){     File[] file=dir.listFiles();     System.out.println("以下是文件:");     for (File file2 : file) {       if(file2.isFile()){//判断其是否是文件         System.out.println(file2.getName());       }     }     System.out.println("以下是文件夹:");     for (File file2 : file) {       if(file2.isDirectory()){//判断其是否是文件夹         System.out.println(file2.getName());       }     }   }   public static void main(String[] args) {     listJava2(new File("F:\\MyJavaCode"));   } }

运行结果图

java中如何使用File类的构造函数

附录3

package com.dhb.file; import java.io.File; /**  * @author DSHORE / 2018-6-26  *  */ //需求:扫描电脑中所有文件夹和文件以及文件夹下的文件和文件夹,或扫描指定盘符下的所有文件和文件夹等等 public class Demo7 {   public static void listDirtory(String dir){     File f=new File(dir);     File[] f2=f.listFiles();//得到文件和文件夹     if(f2==null){       return;     }else{       for (int i = 0; i < f2.length; i++) {         if(f2[i].isDirectory()){//判断是否是 文件夹           System.out.println(f2[i].getAbsolutePath()+" \"is director file\"");//返回值是“文件夹”           listDirtory(f2[i].getAbsolutePath());//继续扫描文件夹里面的文件和文件夹         }else{           System.out.println(f2[i].getAbsolutePath());//返回值是“文件”         }       }     }   }   public static void main(String[] args) {     /*File[] f=File.listRoots();//扫描电脑中所有根盘符     for (File file : f) {       System.out.println(file);       listDirtory(file.toString());//继续扫描文件夹里面的文件和文件夹     }*/     //扫描当前磁盘     listDirtory(File.separator);     //扫描指定磁盘     //listDirtory("F:\\");   } }

运行结果图(文件和文件夹太多,下面只显示部分)路径的最后一级是文件/文件夹

java中如何使用File类的构造函数

附录4

package com.dhb.file; import java.io.File; /**  * @author DSHORE / 2018-7-4  *  */ //需求:删除磁盘中指定的文件夹里面的所有文件和文件夹 public class Demo12 {   public static void delDir(File dir){     File[] files=dir.listFiles();     if(files != null){                   for (int i = 0; i < files.length; i++) {         if(files[i].isFile()){           boolean b = files[i].delete();           if(b){             System.out.println(files[i].getAbsolutePath()+"\'文件删除成功\'");           }         }else{           delDir(files[i]);         }       }     }//留下根目录,根目录里面的文件和文件夹全删了     for (int j = 0; j < files.length; j++) {       if (files[j].isDirectory()) {         boolean b2 = files[j].delete();         //dir.delete();//删除根目录         if (b2) {           System.out.println(files[j].getAbsolutePath()+"\'目录删除成功\'");         }       }     }     if ("F:\\day".equals(dir.getAbsolutePath())) {       boolean b3 = dir.delete();//删除根目录       if (b3) {         System.out.println(dir.getAbsolutePath()+"\'根目录删除成功\'");       }     }   }   public static void main(String[] args) {     File f=new File("F:\\day");     delDir(f);   } }

删除前

java中如何使用File类的构造函数

java中如何使用File类的构造函数

删除后(程序运行后)

java中如何使用File类的构造函数

java中如何使用File类的构造函数

关于java中如何使用File类的构造函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI