一,File类的概述和构造方法

A:file类的概述

file类可以理解成一个路径

文件夹或者是文件夹路径

路径分为绝对路径和相对路径

绝对路径是一个固定的路径,从盘符开始

这里的G:\TIM 就是一个绝对路径,是一个固定的路径

相对路径是相对于某个位置而言的

在eclipse下是指当前项目
这里的 xxx.txt 就是一个相对路径

在DOS下指的是当前路径

这里的C:\Administrator 就是一个当前路径

B:file类的构造方法

file类可以理解成一个路径

  • File(String pathname):根据一个路径得到File对象
  • File(String parent,String chile):根据一个目录和一个子文件/目录得到File对象
  • File(File parent,String child):根据一个父类File对象和一个子文件/目录得到File对象


由图可得:
1,G:\TIM\思You.docx 是存在的
2,xxx.txt也是存在
3,yyy.txt是不存在的

代码实现:

package com.yy.file;import java.io.File;public class Demo1_File {public static void main(String[] args) {demo1();demo2();demo3();}private static void demo3() {/*File(File parent,String child):根据一个父类File对象和一个子文件/目录得到File对象*/File parent = new File("G:\\TIM");String child = "思You.docx";File file = new File(parent,child);System.out.println(file.exists());System.out.println(parent.exists());//(父级路径)是File对象,可以使用File里面的内容}private static void demo2() {/*File(String parent,String chile):根据一个目录和一个子文件/目录得到File对象*/String parent = "G:\\TIM";          //(父级路径)代表字符串,只能判断字符串中的内容,不能使用File里面的内容String child = "思You.docx";         //(子级路径)File file = new File(parent,child);System.out.println(file.exists()); //判断路径是否是否存在}private static void demo1() {/*File(String pathname):根据一个路径得到File对象*/File file = new File("G:\\TIM\\思You.docx");     //代表一个文件的路径 一个'/'表示转译,两个'//'表示该目录下System.out.println(file.exists());  //  绝对路径:(判断是否存在)存在,返回true  不存在,返回falseFile file2 = new File("xxx.txt");       //xxx.txt存在,返回trueSystem.out.println(file2.exists()); //  相对路径:(判断是否存在)存在,返回true  File file3 = new File("yyy.txt");       //yyy.txt不存在,返回falseSystem.out.println(file3.exists()); //  相对路径:(判断是否存在)不存在,返回false}}

二,File类的创建功能

创建功能

  • public boolean createNewFile():创建文件,如果存在这样的文件,就不创建了
  • public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了
  • public boolean mkdir():创建多级文件夹,如果父文件夹不存在,会帮你创建出来

代码实现:

package com.yy.file;import java.io.File;
import java.io.IOException;public class Demo2_FileMethod {public static void main(String[] args) throws IOException {demo1();demo2();demo3();}private static void demo3() {/*public boolean mkdir():创建多级文件夹,如果父文件夹不存在,会帮你创建出来*/File dir3 = new File("ccc\\ddd");System.out.println(dir3.mkdirs());//创建多级目录(创建多级文件夹)}private static void demo2() {/*public boolean mkdir():创建文件夹,如果存在这样的文件夹,就不创建了*/File dir1 = new File("aaa");//创建文件夹,如果父文件夹存在,不创建,并返回false;如果父文件夹不存在,创建,并返回trueSystem.out.println(dir1.mkdir());File dir2 = new File("bbb.txt");//这样写是可以的,创建的是文件夹,只是文件夹的名称为:bbb.txt而已,文件夹也是可以有后缀的System.out.println(dir2.mkdir());}private static void demo1() throws IOException {/*public boolean createNewFile():创建文件,如果存在这样的文件,就不创建了*/File file = new File("wsq.txt");System.out.println(file.createNewFile());   //如果没有就创建,返回trueFile file2 = new File("zzz");System.out.println(file2.createNewFile());  //如果有就不创建了,返回false}}

二,File类的重命名和删除功能

A:重命名和删除功能

  • public boolean renameTo(File dest):把文件重命名为指定的文件路径
  • public boolean delete():删除文件或文件夹

B:重命名注意事项

  • 如果路径名相同,就是改名
  • 如果路径名不同,就是改名并剪切

C:删除注意事项

  • Java中的删除不走回收站
  • 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

代码实现:

package com.yy.file;import java.io.File;public class Demo3_Method {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file1 = new File("yy.txt");System.out.println(file1.delete());//删除yy.txt文件(删除时,不走回收站的,也就是说 会永久彻底删除)File file2 = new File("E:\\wsq.txt");System.out.println(file2.delete());File file3 = new File("zzz");System.out.println(file3.delete());}private static void demo1() {File file1 = new File("yy.txt");File file2 = new File("E:\\wsq.txt");System.out.println(file1.renameTo(file2));//把文件yy.txt重命名为E盘下wsq.txt}}

程序运行之后:


会将yy.txt转化成G:\TIM下的wsq.txt

三,File类的判断功能

判断功能

  • public boolean isDirectory():判断是否是目录,是 返回true 否 返回 false
  • public boolean isFile():判断是否是文件,是 返回true 否 返回 false
  • public boolean exists():判断是否存在,是 返回true 否 返回 false
  • public boolean canRead():判断是否可读,是 返回true 否 返回 false
  • public boolean isHidden():判断是否隐藏,是 返回true 否 返回 false


由图可知:
ccc是一个文件夹
zzz是一个文件
aaa.txt是一个文件


将aaa.txt设置为隐藏

代码实现:

package com.yy.file;import java.io.File;public class Demo4_FileMethod {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file = new File("zzz");file.setReadable(false);System.out.println(file.canRead());         //Windows 系统认为所以的文件都是可读的file.setWritable(true);System.out.println(file.canWrite());        //Windows 系统可以设置为不可写File file2 = new File("aaa.txt");System.out.println(file2.isHidden());       //判断是否是隐藏文件System.out.println(file.isHidden());}private static void demo1() {File dir1 = new File("ccc");            //这里的ccc是一个文件夹System.out.println(dir1.isDirectory());//判断是否是文件夹      ccc  是一个文件夹,所以返回trueFile dir2 = new File("zzz");            //这里的zzz是一个文件System.out.println(dir2.isDirectory());//判断是否是文件夹      zzz  是一个文件,所以返回falseSystem.out.println(dir1.isFile());      //判断是否是文件      ccc  是一个文件夹,所以返回falseSystem.out.println(dir2.isFile());      //判断是否是文件      zzz  是一个文件,所以返回trueSystem.out.println(dir1.exists());      //判断是否存在,存在返回true,不存在返回falseSystem.out.println(dir2.exists());      //判断是否存在,存在返回true,不存在返回false}}

四,File类的获取功能

  • public String getAbsolutepath():’获取绝对路径
  • public String getPath():获取路径
  • public String getName():获取名称
  • public long length():获取长度、字节数
  • public long lastModified():获取最后一次的修改时间(毫秒值)
  • public String [] list():获取指定目录下的所有文件或者文件夹名称数组
  • public File [] listFiles():获取指定目录下的所有文件或者文件夹的File数组



代码实现:

package com.yy.file;import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;public class Demo5_FileMethod {/*** public String getAbsolutepath():’获取绝对路径* public String getPath():获取路径* public String getName():获取名称* public long length():获取长度、字节数* public long lastModified():获取最后一次的修改时间(毫秒值)* public String [] list():获取指定目录下的所有文件或者文件夹名称数组* public File [] listFiles():获取指定目录下的所有文件或者文件夹的File数组* */public static void main(String[] args) {demo1();File dir = new File("G:/TIM");          //获取名称String [] arr = dir.list();                 for (String string : arr) {System.out.println(string);}System.out.println();File [] subFiles = dir.listFiles();     //获取全路径(每一个file对象)  for (File file : subFiles) {System.out.println(file);           //重写了Object类中的toString()方法}System.out.println();}private static void demo1() {File file1 = new File("ccc.txt");   //相对路径File file2 = new File("E:\\eclipse_win64\\新建文件夹\\day19\\ccc.txt");  //绝对路径System.out.println(file1.getAbsolutePath());            //获取绝对路径System.out.println(file2.getAbsolutePath());            //获取绝对路径System.out.println();System.out.println(file1.getPath());                    //获取构造方法里面的路径,传的是啥,返回啥System.out.println(file2.getPath());                    //获取构造方法里面的路径,传的是啥,返回啥System.out.println();System.out.println(file1.getName());                    //获取文件或者是文件夹的名称System.out.println(file2.getName());                    //获取文件或者是文件夹的名称System.out.println();System.out.println(file1.length());                     //获取文件或者是文件夹的长度、字节数System.out.println(file2.length());                     //获取文件或者是文件夹的长度、字节数System.out.println();System.out.println(file1.lastModified());               //获取文件最后一次的修改时间(毫秒值)System.out.println(file2.lastModified());               //获取文件最后一次的修改时间(毫秒值)System.out.println();Date wsq = new Date(file1.lastModified());              Date yy = new Date(file2.lastModified());System.out.println(wsq);                                //获取文件最后一次的修改时间(年月日英文形式)System.out.println(yy);                                 //获取文件最后一次的修改时间(年月日英文形式)System.out.println();SimpleDateFormat qq = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");System.out.println(qq.format(wsq));                     //获取文件最后一次的修改时间(年月日简易中文形式)System.out.println(qq.format(yy));                      //获取文件最后一次的修改时间(年月日简易中文形式)System.out.println();}}

运行结果如下:


五,File类(输出指定目录下指定后缀的文件名)

  • 问题:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

代码如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {/*** 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称* */public static void main(String[] args) {File dir = new File("E:\\");/*String [] arr = dir.list();               //获取E盘下所有的文件或者文件夹for (String wsq : arr) {if(wsq.endsWith(".jpg"));System.out.println(wsq);}*/File [] subFiles = dir.listFiles();         //获取E盘下所有的文件或者文件夹对象for (File subFile : subFiles) {if(subFile.isFile() && subFile.getName().endsWith(".jpg")){System.out.println(subFile);}}
}

六,File类(文件名称过滤器)

代码如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {public static void main(String[] args) {File dir = new File("E:\\");String [] arr = dir.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {
//              System.out.println(dir);
//              System.out.println(name);File file = new File(dir, name);return file.isFile() && file.getName().endsWith(".jpg");}});for (String string : arr) {System.out.println(string);}   }
}

Java——File类相关推荐

  1. java File类 常用相关函数

    java File类 相关函数 1.构建函数 2.判断相关函数 4.创建相关函数 5.删除相关函数 6.获取相关函数 1.构建函数 /*** File 构造方法* file 常用构造方法* 1: Fi ...

  2. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

  3. 探究Java File类中list()、listFiles()的使用及区别,认识和使用匿名内部类

    转载自     探究Java File类中list().listFiles()的使用及区别,认识和使用匿名内部类 内容概要: 1.认识File类: 2.File的构造函数: 3.list()及其重载方 ...

  4. java File类

    java File类 今天我要总结一下java File类.这个是一个很重要的类. 首先是我画的思维导图. 还写了一些自己写的代码. /*** Date : 2017/6/24* Author : H ...

  5. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

  6. Java File类基本操作

    我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...

  7. java file类包_Java中File类的常用API

    Java.io包下的File类实现了Serializable和Comparable两个接口 1.创建文件 注意: 1).如果D盘下file文件夹不存在,则抛出异常;如果D盘下file文件夹存在,则创建 ...

  8. java file类详解_Java File类详解及IO介绍及使用

    我是一个CPU:这个世界慢!死!了!,可以感受到CPU,内存和硬盘之间的速度比较. 文件的本质 OS(操作系统)的目的就是可以让上层程序可以通过一种统一的方式去拿到无论什么磁盘里的文件(即一段字节流) ...

  9. java file类复制文件路径_java进阶(34)--File类、目录复制

    一.File类的理解 1.File类不能完成文件的读与写. 2.FIle类代表:文件或目录的路径名的抽象表示形式. 二.FIle类常用方法: 1.创建一个FIle对象:File() File f1=n ...

最新文章

  1. 【Android 逆向】Android 逆向通用工具开发 ( adb forward 网络端口重定向命令 | PC 端逆向程序主函数分析 )
  2. Linux下使用Vi是方向键变乱码 退格键不能使用的解决方法
  3. 论文浅尝 - ICML2020 | 拆解元学习:理解 Few-Shots 任务中的特征表示
  4. wordpress是用php几开发的,php-WordPress多个开发人员设置
  5. 解决Git 重复输入用户名和密码的问题
  6. 家里的所有网线都集中到了弱电箱怎么组网?
  7. wsdl2java validate_使用cxf wsdl2java进行客户端证书身份验证
  8. 软件评测师考试备考资料分享
  9. 华为是怎样研发的(1)——概述
  10. softice调试驱动
  11. Component template should contain exactly one root element. If you are using v-if on multiple eleme
  12. w10恢复出厂设置_win10系统恢复出厂设置失败如何解决
  13. Git 和Bitbucket
  14. Java.util.ArrayList详解
  15. 我为你写下悲伤的文字:伤感心情随笔
  16. 将工业ISM和消费者ISM频段设备迁移到LoRaWAN,LoRa设备开发参考指南(二十)
  17. 关于中低端游戏本玩3A游戏降频的优化
  18. 福利啊,精品资源大放送
  19. 泰山OFFICE技术讲座:Times New Roman的kerning研究
  20. 【Java基础】之 JSR 介绍

热门文章

  1. 计算机控制论文,计算机控制系统论文.ppt
  2. 最短路径问题matlab作图,[MATLAB基础] matlab最短路径的输出问题,用了递归,但程序出错了,请大虾指点...
  3. Canvas-图片旋转
  4. python3-开发进阶-RESTful 软件架构风格
  5. [vue插件]基于vue2.x的电商图片放大镜插件
  6. 前端路由实现原理(history)
  7. CSS Variables
  8. http://www.tldp.org/LDP/abs/abs-guide.txt.gz
  9. upload file more than 4MB
  10. perl exe执行提示缺少文件解决方法