Java 中的 File类 Java 中的 File类详情
X玖DAYTOY 人气:0一、File类简单介绍
为什么要学习File类呢,他的作用又是什么呢?
IO流操作中大部分都是对文件进行操作,所以Java
就提供了一个File类供我们来操作文件,它是以抽象的方式代表文件名和目录路径名,该类主要是对文件或目录的创建,文件的查找,删除等。对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。
二、 路径的分类
- 绝对路径:带有盘符号的路径
- 相对路径:没有带盘符号的路径,默认在根目录下
三、 构造方法
File
(String pathname):根据一个路径得到File对象File
(String parent, String child):根据一个目录和一个子文件/目录得到File对象File
(File parent, String child):根据一个父File对象和子文件/目录得到File对象
示例代码:
package org.westos.demo2; import java.io.File; public class MyTest2 { public static void main(String[] args){ //通过路径得到对象 File file = new File("E:\\aaa\\"); //通过父类路径和子类名得到对象 File file1 = new File("E:\\", "aaa"); //通过父类对象和子类名得到对象 File file2 = new File("E:\\"); File file3 = new File(file2, "aaa"); } }
四、 成员方法
创建功能:
public boolean createNewFile()
当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件。
public boolean mkdir()
创建由此抽象路径名命名的目录。 public boolean
mkdirs()
创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
示例代码:
public class FileDemo02 { public static void main(String[] args) throws IOException { //需求1:我要在E:\\itcast目录下创建一个文件java.txt File f1 = new File("E:\\itcast\\java.txt"); System.out.println(f1.createNewFile()); System.out.println("--------"); //需求2:我要在E:\\itcast目录下创建一个目录JavaSE File f2 = new File("E:\\itcast\\JavaSE"); System.out.println(f2.mkdir()); System.out.println("--------"); //需求3:我要在E:\\itcast目录下创建一个多级目录JavaWEB\\HTML File f3 = new File("E:\\itcast\\JavaWEB\\HTML"); // System.out.println(f3.mkdir()); System.out.println(f3.mkdirs()); System.out.println("--------"); //需求4:我要在E:\\itcast目录下创建一个文件javase.txt File f4 = new File("E:\\itcast\\javase.txt"); // System.out.println(f4.mkdir()); System.out.println(f4.createNewFile()); } }
删除功能:
public boolean delete() ;
注意:
- 要删除一个文件夹,请注意该文件夹内不能包含文件或文件夹
- java中删除不走回收站
示例代码:
public class FileDemo03 { public static void main(String[] args) throws IOException { // File f1 = new File("E:\\itcast\\java.txt"); //需求1:在当前模块目录下创建java.txt文件 File f1 = new File("myFile\\java.txt"); // System.out.println(f1.createNewFile()); //需求2:删除当前模块目录下的java.txt文件 System.out.println(f1.delete()); System.out.println("--------"); //需求3:在当前模块目录下创建itcast目录 File f2 = new File("myFile\\itcast"); // System.out.println(f2.mkdir()); //需求4:删除当前模块目录下的itcast目录 System.out.println(f2.delete()); System.out.println("--------"); //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt File f3 = new File("myFile\\itcast"); // System.out.println(f3.mkdir()); File f4 = new File("myFile\\itcast\\java.txt"); // System.out.println(f4.createNewFile()); //需求6:删除当前模块下的目录itcast System.out.println(f4.delete()); System.out.println(f3.delete()); } }
重命名功能:
public boolean renameTo(File dest):
如果路径名相同,就是改名;如果路径名不相同,就是改名并剪切
判断功能:
public boolean isDirectory():
判断是否是文件夹
public boolean isFile():
判断是否是文件
public boolean exists():
判断文件或文件夹是否存在
public boolean canRead():
判断是否可读
public boolean canWrite():
判断是否可写
public boolean isHidden():
判断文件或文件夹是否隐藏
示例代码:
public class FileDemo04 { public static void main(String[] args) { //创建一个File对象 File f = new File("myFile\\java.txt"); // public boolean isDirectory():测试此抽象路径名表示的File是否为目录 // public boolean isFile():测试此抽象路径名表示的File是否为文件 // public boolean exists():测试此抽象路径名表示的File是否存在 System.out.println(f.isDirectory()); System.out.println(f.isFile()); System.out.println(f.exists()); } }
获取功能:
基本获取功能:
public String getAbsolutePath():获取文件或文件夹的绝对路径
public String getPath():获取文件或文件夹的相对路径
public String getName():获取文件或文件夹名称
public long length():获取长度,字节数,可以获取文件的大小进行判断
public long lastModified():获取最后一次修改的时间,返回毫秒值,可以判断文件被修改过几次
高级获取功能:
public String[ ] list():获取目录下的所有文件或者文件夹的名称数组
public File[ ] listFiles():获取指定目录下的所有文件夹的File对象数组,返回的是File对象说明可以调用File的方法
示例代码:
public class FileDemo04 { public static void main(String[] args) { //创建一个File对象 File f = new File("myFile\\java.txt"); // public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串 // public String getPath():将此抽象路径名转换为路径名字符串 // public String getName():返回由此抽象路径名表示的文件或目录的名称 System.out.println(f.getAbsolutePath()); System.out.println(f.getPath()); System.out.println(f.getName()); System.out.println("--------"); // public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 // public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组 File f2 = new File("E:\\itcast"); String[] strArray = f2.list(); for(String str : strArray) { System.out.println(str); } System.out.println("--------"); File[] fileArray = f2.listFiles(); for(File file : fileArray) { // System.out.println(file); // System.out.println(file.getName()); if(file.isFile()) { System.out.println(file.getName()); } } } }
文件过滤接口:
想获取的时候就满足条件,要实现文件过滤接口:public String[ ] listFiles(new FilenameFilter)
加载全部内容