2024年java基础之file类详解

java基础之file类详解一 File 类概述 File 类是文件和目录路径名的抽象表示形式 File 类可以理解为一个文件路径或者文件夹路径的 JAVA 表现形式 而路径又可以分为绝对路径 是一个固定路径 从盘符开始 相对路径 相对于 eclipse 下的路径 举例 绝对路径 D eclipse 相对路径 java txt 二 常用构造方法 File String pathname 根据一个路径得到 File 对象

大家好,我是讯享网,很高兴认识大家。




一、File类概述

File类是文件和目录路径名的抽象表示形式。File类可以理解为一个文件路径或者文件夹路径的JAVA表现形式,
而路径又可以分为绝对路径(是一个固定路径,从盘符开始),相对路径(相对于eclipse下的路径)。
举例:
绝对路径:D:\eclipse
相对路径:java.txt

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

 1 //File(String pathname)构造  2 File f=new File("d:\lcy");  3 //exists()方法为测试此抽象路径名表示的文件或目录是否存在。  4 System.out.println(f.exists());  5 //File(String parent, String child)构造  6 File f1=new File("D:\lcy", "a1.txt");  7 System.out.println(f1.exists());  8 //File(File parent, String child)构造  9 File f3 = new File(f,"a1.txt"); 10 System.out.println(f3.exists());
讯享网

三、常用方法

File类的方法按照用途的不同可以大致分为:创建功能、修改功能(重命名和删除)、

判断功能(判断是文件夹还是文件)、获取功能(获取文件名数组,获取文件大小等)。

1、创建功能

createNewFile():创建文件 如果存在这样的文件,就不创建了
mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
这三个方法都是无参返回值为boolean类型的方法,其中mkdirs()方法最为常用,因为File类一般都是与IO流一同使用
而输出流在目标文件不存在的时候回自动帮你创建文件。
举例:

讯享网1 //createNewFile()方法创建文件 2 File file = new File("a.txt"); 3 System.out.println(file.createNewFile()); 4 //在相对路径下创建b文件夹 5 File file2 = new File("b"); 6 System.out.println(file2 .mkdirs()); 7 //在相对路径下创建d文件夹,mkdirs()方法会自动帮你创建父文件夹 8 File file3 = new File("c/s/d"); 9 System.out.println(file3.mkdirs());

2、修改功能

renameTo(File dest):把文件重命名为指定的文件路径。
返回值为boolean类型,需要注意的是如果路径名相同,就是改名。如果路径名不同,就是改名并剪切。
delete():删除文件或者文件夹。
注意:只能删除空的文件夹,如果文件夹里有文件想要删除,则需要先把文件删除。

3、判断功能

isDirectory():判断是否是目录
isFile():判断是否是文件
exists():判断是否存在
isHidden():测试此抽象路径名指定的文件是否是一个隐藏文件
isAbsolute():测试此抽象路径名是否为绝对路径
这三个方法一般和if语句一起使用。
举例:

1 //判断是否为绝对路径 2 System.out.println(f.isAbsolute()); 3 //判断是否为文件 4 System.out.println(file.isFile()); 5 //判断是否为文件夹 6 System.out.println(file3.isDirectory()); 7 //是否包含隐藏文件 8 System.err.println(f1.isHidden());

4、获取功能

getAbsolutePath():获取绝对路径 - 字符串
getPath():获取路径 - 字符串
getName():返回此路径名表示的文件或目录的名称。
length():获取文件长度 - 字节数
lastModified():获取最后一次的修改时间 - 毫秒值(lang类型)
list():获取指定目录下的所有文件或者文件夹的名称数组 - 数组
listFiles():获取指定目录下的所有文件或者文件夹的File数组 - 数组
getAbsoluteFile():返回此相对路径的绝对路径 - File对象
getAbsolutePath():返回此相对路径的绝对路径 - 字符串
getParent():返回此路径名父目录的路径名字符串;如果没有父目录,则返回 null。
getParentFile():返回此路径名父目录的路径对象;如果没有父目录,则返回 null。

举例:

讯享网 1 java基础之file类详解//返回此相对路径的绝对路径 - File对象  2 System.out.println(file2.getAbsoluteFile());  3 //返回此相对路径的绝对路径 - 字符串  4 System.out.println(file3.getAbsolutePath());  5 //获取此路径名父目录的路径名字符串  6 System.out.println(f3.getParent());  7 //获取此路径名父目录的路径对象  8 System.out.println(f3.getParentFile());  9 //获取文件长度 10 System.out.println(file.length()); 11 //获取最后一次的修改时间 12 long lastModified = file.lastModified(); 13 Date d=new Date(lastModified); 14 //用Date里的过时方法显示时间,格式如:2086-9-24 21:44:33 15 System.out.println(d.toLocaleString()); 16 File file4 = new File("lcy.txt"); 17 //将file改为file4 18 file.renameTo(file4);

实现步骤:

 1 // 创建一个HashMap,key用来存后缀名 value用来存个数  2 static HashMap<String, Integer> hs = new HashMap<>();  3  4 public static void main(String[] args) {  5 //目标文件夹的File对象  6 File file = new File("D:\aa");  7 //将File对象传入到统计方法里  8 tj(file);  9 Set<Entry<String, Integer>> entrySet = hs.entrySet(); 10 for (Entry<String, Integer> entry : entrySet) { 11 String key = entry.getKey(); 12 Integer value = entry.getValue(); 13 System.out.println(key + "类型的文件有" + value + "个"); 14 } 15 } 16 17 // 定义统计方法 18 public static void tj(File f) { 19 //先判断是否为文件夹 20 if (f.isDirectory()) { 21 //判断是否为空 22 if (f != null) { 23 // System.out.println(f); 24 //获取此文件夹的所有文件或者文件夹的File数组 25 File[] listFiles = f.listFiles(); 26 //遍历File[] 27 for (File file : listFiles) { 28 //判断文件夹里的内容是否是文件 29 //是文件 30 if (file.isFile()) { 31 //获取文件名 32 String name = file.getName(); 33 //根据尾部的.截取字符串 34 String[] split = name.split("\."); 35 // System.out.println(Arrays.toString(split)); 36 // Set<String> keySet = hs.keySet(); 37 //判断HashMap里是否有那个类型的文件 38 if (hs.containsKey(split[split.length - 1])) { 39 //40 //获取此文件类型的value值 41 Integer integer = hs.get(split[split.length - 1]); 42 //在此value值的基础上+1 43 hs.put(split[split.length - 1], integer + 1); 44 } else { 45 //没有 46 //value值设为以 47 hs.put(split[split.length - 1], 1); 48 } 49 50 } else { 51 //是文件夹,继续执行此方法,直到没有文件夹为止,然后才一层一层的往回返。递归 52 tj(file); 53 } 54 } 55 } 56 } 57 }
小讯
上一篇 2024-12-25 18:12
下一篇 2024-12-25 23:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/3489.html