62. File类常用方法
为了怕混淆,先说明一些下面要出现的名词意思:
例如:D:\\新建文件夹 (2)\\a.txt 和 D:\\新建文件夹 (2)\\aaaa
D:\\新建文件夹 (2) 父路径
a.txt 子文件
aaaa 子文件夹
创建:
创建子文件:
createNewFile() 如果在指定位置创建一个空子文件,如果在此父路径已存在此子文件返回false,如果没有那么创建一个,并返回true
public boolean createNewFile()
throws IOException
创建子文件夹:
mkdir()
根据所给的父路径创建所给父路径中不存在的子文件夹,成功true,失败false
注意:
1.不能创建多个子文件夹,也就是所给的路径只有一个子文件夹是不存在的
2.只能创建文件夹,不能创建文件,就算给a.txt,他也是a.txt文件夹
mkdirs()
根据所给的父路径创建所给父路径中所有不存在的子文件夹,成功true,失败false
注意:
1.能创建多个文件夹
2.只能创建文件夹,不能创建文件,就算给a.txt,他也是a.txt文件夹
renameTo(File dest)
操作子文件夹:
如果调用者的父路径和参数的父路径一样,那么就是调用者的子文件夹名字覆盖原文件夹名字并返回true(重命名)
如果调用者的父路径和参数的父路径不一样,那么会操作失败返回false(剪切不能操作文件夹)
操作子文件:
如果调用者的父路径和父参数的路径一样,那么就是重命名
如果调用者的父路径和参数的父路径不一样,那么就是剪切(注意:如果名字也不相同,那么就是重命名加剪切)
删除:
delete()
删除此抽象父路径名表示的空子文件夹或者子文件,成功true失败false
deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件夹或文件。无返回值
注意:第一个删除是执行了删除语句后,立刻会删除。而第二个是执行了删除语句不会被删除,只有当jvm退出时才会删除
例如:网易音乐中我们可以试听(缓存),试听的时候文件是下载下来了,当我们退出网易云后,我们试听的文件会删除,
这样是为了保证内存不会被浪费,打开网易云的时候不会加载这么多数据,启动不会变慢
获取:
抽象路径要父路径+子文件或者子文件夹(父路径可以不真实存在):
getName() 返回由此抽象路径名表示的文件夹或文件的名称。(返回子文件夹或者子文件名)
getParent() 返回此抽象路径名表示的父路径名;如果此路径名没有指定父路径,则返回 null。
getPath() 返回此抽象路径名的绝对路径名字符串(返回父路径名+子文件或者子文件夹名)。
getAbsolutePath() 返回此抽象路径名的绝对路径名字符串(返回父路径名+子文件或者子文件夹名)。
lastModified() 如果在此路径下存在此文件或者文件夹,那么返回的是最后一次修改的时间,如果不存在那么返回的是0
length() 返回由此抽象路径名表示的子文件大小(字节),如果此路径下存在此子文件,那么返回子文件的字节大小,如果不存在那么返回0
抽象路径要父路径(并且父路径要真实存在,否者会报空指针异常):
不可以接受过滤器:
list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的子文件名和子文件夹名
listFiles() 返回一个File类型的数组,这些字符串指定此抽象路径名表示的父路径+子文件和子文件夹
listRoots() 返回一个File类型的数组,列出可用的文件系统根。(比如:盘符)
可以接受过滤器:
list(FilenameFilter filter)接受一个过滤器并返回字符串数组,过滤器返回true就存入数组,返回false就不存入(数组存储的是子文件或者子文件夹名)
listFiles(FileFilter filter)接受一个过滤器并返回字符串数组,过滤器返回true就存入数组,返回false就不存入(数组存储的是父路径+子文件或者子文件夹名)
自定义过滤器:
创建一个类并实现FilenameFilter接口中的accept方法,accept方法中写过滤代码
例如:
class MyFilter implements FilenameFilter{
public boolean accept(File dir, String name){
//过滤代码
}
}
dir : 表示父路径
name: 表示子文件或者子文件夹
下面是一些实例:
创建:
- public class Demo2 {
- public static void main(String[] args) throws IOException {
- //在D:\\新建文件夹 (2)下创建一个a.txt的文件
- File file = new File("D:\\新建文件夹 (2)\\a.txt");
- System.out.println(file.createNewFile());
- //在D:\\新建文件夹 (2)路径下创建一个bb的文件夹
- File file1 = new File("D:\\新建文件夹 (2)\\bb");
- System.out.println(file1.mkdir());
- //在D:\\新建文件夹 (2)路径下创建一个aa\\bb\\cc的多级文件夹,
- File file2 = new File("D:\\新建文件夹 (2)\\aa\\bb\\cc");
- System.out.println(file2.mkdirs());
- //修改D:\\新建文件夹 (2)路径下的bb文件夹名字为bbbbbbb
- File file3 = new File("D:\\新建文件夹 (2)\\bbbbbbb");
- System.out.println(file1.renameTo(file3));
- //把D:\\新建文件夹 (2)路径下bbbbbbb文件夹剪切到D:\\目录下
- File file4 = new File("D:\\bbbbbbb");
- System.out.println(file1.renameTo(file4));
- //把D:\\新建文件夹 (2)路径下a.txt文件重命名为aaaa.txt
- File file5 = new File("D:\\新建文件夹 (2)\\aaaa.txt");
- System.out.println(file.renameTo(file5));
- //把D:\\新建文件夹 (2)路径下aaaa.txt文件剪切到D:\\目录下
- File file6 = new File("D:\\aaaa.txt");
- System.out.println(file5.renameTo(file6));
- }
- }
删除:
- public class Demo3 {
- public static void main(String[] args) {
- //delete() 删除此抽象路径名表示的空文件夹或者文件(立刻删除)
- File file = new File("D:\\新建文件夹 (2)\\a.txt");
- System.out.println("存在此文件吗?"+file.exists());
- System.out.println("删除成功了吗?"+file.delete());
- System.out.println("删除后文件还存在吗?"+file.exists());
- System.out.println("---------------------------------------");
- //deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件夹或文件。(jvm退出时删除)
- File file1 = new File("D:\\新建文件夹 (2)\\b.txt");
- System.out.println("存在此文件吗?"+file1.exists());
- file1.deleteOnExit();
- System.out.println("删除后还存在此文件吗?"+file1.exists());
- }
- }
获取:
- public class Demo4 {
- public static void main(String[] args) {
- File file = new File("D:\\新建文件夹 (2)\\a.txt");
- System.out.println("是否存在a.txt文件"+file.exists());
- //getName()返回由此抽象路径名表示的文件夹或文件的名称。(返回子文件夹或者子文件名)
- System.out.println("getName():"+file.getName());
- //getParent()返回此抽象路径名表示的父路径名;如果此路径名没有指定父路径,则返回 null。
- System.out.println("getParent()"+file.getParent());
- //getPath()返回此抽象路径名的绝对路径名字符串(返回父路径名+子文件或者子文件夹名)。
- System.out.println("getPath()"+file.getPath());
- //getAbsolutePath() 返回此抽象路径名的绝对路径名字符串(返回父路径+子文件或者子文件夹名)。
- System.out.println("getAbsolutePath()"+file.getAbsolutePath());
- //lastModified()如果在此路径下存在此文件或者文件夹,那么返回的是最后一次修改的时间,如果不存在那么返回的是0
- Date date = new Date(file.lastModified());
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
- System.out.println("最后一次修改的时间"+dateFormat.format(date));
- //length()返回由此抽象路径名表示的文件大小(字节),如果此路径下存在此文件,那么返回文件的字节大小,如果不存在那么返回0
- System.out.println("length()"+file.length());
- }
- }
- class MyFilter implements FilenameFilter{
- @Override
- public boolean accept(File dir, String name) {
- // TODO Auto-generated method stub
- return name.endsWith(".txt");
- }
- }
- public class Demo5 {
- public static void main(String[] args) {
- File file = new File("D:\\新建文件夹 (2)");
- System.out.println("是否存在此路径:"+file.exists());
- //list()返回一个字符串数组,这些字符串指定此抽象路径名表示的子文件和子文件夹
- String[] strarr1 = file.list();
- for (String temp : strarr1) {
- System.out.print(temp+",");
- }
- System.out.println("\n----------------------");
- //listFiles()返回一个File类型的数组,这些字符串指定此抽象路径名表示的父路径+子文件和子文件夹
- File[] fliearr1 = file.listFiles();
- for (File temp : fliearr1) {
- System.out.print(temp+",");
- }
- System.out.println("\n----------------------");
- //listRoots()返回一个File类型的数组,列出可用的文件系统根。(比如:盘符)
- File[] filearr2 = file.listRoots();
- for (File temp : filearr2) {
- System.out.print(temp+",");
- }
- System.out.println("\n----------------------");
- //list(FilenameFilter filter)接受一个过滤器并返回一个由过滤器过滤的字符串数组,过滤器返回true就存入数组,返回false就不存入(数组存储的是子文件或者子文件夹名)
- String[] strarr2 = file.list(new MyFilter());
- for (String temp : strarr2) {
- System.out.print(temp+",");
- }
- System.out.println("\n----------------------");
- //listFiles(FileFilter filter)接受一个过滤器并返回一个由过滤器过滤的字符串数组,过滤器返回true就存入数组,返回false就不存入(数组存储的是父路径+子文件或者子文件夹名)
- File[] filearr3 = file.listFiles(new MyFilter());
- for (File temp : filearr3) {
- System.out.print(temp+",");
- }
- }
- }
62. File类常用方法的更多相关文章
- java File类常用方法
file类常用方法 delete()删除此抽象路径名表示的文件和目录. equals()测试此抽象路径名与给定对象是否相等. exists()测试此抽象路径名表示的文件或目录是否存在. getName ...
- File类常用方法和枚举
新建一个file对象: File f = new File("F:\\01.JAVA基础300集\\05_常用类\\122.File类的使用.mp4"); (文件路径也可以用&qu ...
- File类常用方法
File类是IO中常用的类 先介绍几个常用的方法: public boolean canRead(),public boolean canWrite() 测试当前文件是否可读可写,若是则返回true ...
- C# File类常用方法
File 类 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. 1. File.Exists —— 确定指定的文件是否存在. public static ...
- Java File类常用方法及实例
创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false. createTempFile(String prefix, String s ...
- I/O流——File类及使用
I/O框架介绍 I/O是计算机输入/输出的接口.Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等. File类及使用 ① 一个File类的对 ...
- File类
存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动,传送,亦可以被其他程序使用.由于数据存储在文 ...
- Java文件File类学习总结
java.io.File类 代表文件和目录,在开发中,读取文件.生成文件.删除文件.修改文件的属性都会用到该类. 常见构造方法: public File(String pathName){} 以pat ...
- Java常用类之File类
File 类: 1. java.io.File 类代表系统文件名(路径名.文件名); 2. File 类常见的构造方法: 2.1. File(String pathname):通过将给定路径名字符串转 ...
随机推荐
- C++ 浅析调试,内存重叠查看
这里举个例子查看内存, 环境为:vs 2017 测试为strcpy[因为测试老api,需要在 预处理中 添加 _CRT_SECURE_NO_WARNINGS ] 测试问题:内存溢出 源码: #incl ...
- sql格式化时间
sql格式化date类型 DATE_FORMAT(nuw(), '%Y-%m-%d') sql格式化long类型时间 FROM_UNIXTIME(time/1000,'%Y-%m-%d')
- Delphi 字符串函数SysUtils单元 AnsiSameStr、AnsiSameText、AnsiCompareStr、AnsiCompareText、AnsiCompareFileName、AnsiUpperCase、AnsiLowerCase、AnsiUpperCaseFileName、AnsiLowerCaseFileName、AnsiPos、AnsiQuotedStr
USES 单元 SysUtils 非 StrUtils AnsiSameStr.AnsiSameText.AnsiCompareStr.AnsiCompareText.AnsiCompareFileN ...
- 如何在cmd中启动MongoDB服务器和客户端
1 先将MongoDB的bin路径添加到环境变量中 2 打开cmd输入mongod 开启MongoDB服务器 3 输入mongo开启MongoDB客户端
- 树莓派上安装boost库
一.安装boost库 sudo apt-get install libboost-dev aptitude search boost 二.编写测试代码 #include <iostream> ...
- 【LeetCode 32】最长有效括号
题目链接 [题解] 设dp[i]表示以第i个字符结尾的最长有效括号的长度. 显然只要考虑s[i]==')'的情况 则如果s[i-1]=='(',则dp[i] = dp[i-2]+2; 如果s[i-1] ...
- 在ios微信中提交form,php端收不到参数的问题
今天做h5页面时,微信浏览器中提交form表单,发现php端收不到post过来的参数,在普通浏览器中可以,安卓微信也可以,$_POST,$_GET,$_REQUEST等方式都不行. 后来,把form表 ...
- 项目质量管理—七种基本质量工具
出处:PMBOK(第五版) P236 1.因果图,又称鱼骨图或石川图 用来追溯问题来源,回推到可行动的根本原因.(找根本原因) 2.流程图,也称过程图 用来显示在一个或多个输入转化成一个或多个输出的过 ...
- 安装纯净版debian!
kali更新了1.1.0a,不知道新版的内核哪地方有bug,用着用着就卡死了,一怒之下卸载了装debian. 下载的netinst只有200M,基本上就是刚好能用,不要用硬盘装,会找不到网卡,无线也没 ...
- Python 工程师技能图谱skill-map
# **Python 工程师技能图谱** ## **入门**- 笨办法学Py- 官方教程- Hitchhiker- coursera * codeskulptor.org ## **进阶/脚本** # ...