Java-File类
1.简介
java.io.File
类是文件和目录路径名的抽象表示,主要删除线格式 用于文件和目录的创建、查找和删除等操作。
2.相关知识
(1)file文件 directory文件夹/目录 path路径
(2)路径分隔符:
- Windows: “;”
- Linux: “:”
文件名称分隔符:
- Windows: “\”
- Linux: “/”
因操作系统可能不同,操作路径不能写死: (File.separator)
C:\develop\a\a.txt windows
C:/develop/a/a.txt linux
"C:"+File.separator+"develop"+File.separator+"a"+File.separator+"a.txt"
(3)因"\“代表转义字符,两个”\\“代表一个”\"
(4)路径不区分大小写
3.构造方法
(1)public File(String pathname)
:通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
String a = "D:\\aaa.txt";
File f = new File(a);
(2)public File(String parent, String child)
:从父路径名字符串和子路径名字符串创建新的 File实例。
String parent = "d:\\aaa";
String child = "bbb.txt";
File file0 = new File(parent, child);
(3)public File(File parent, String child)
:从父抽象路径名和子路径名字符串创建新的 File实例。
File parent0 = new File("d:\\aaa");
String child = "bbb.txt";
File file1 = new File(parent0, child);
将父子路径分开可方便对其分别修改!
4.常用方法
public String getAbsolutePath()
: 返回此File的绝对路径名字符串(不论输入的是什么路径都返回绝对路径)。
public String getPath()
: 将此File转换为路径名字符串(输入什么路径输出什么路径)。
public String getName()
: 返回由此File表示的文件或目录的名称(返回文件或目录)。
public long length()
: 返回由此File表示的文件的长度(大小)。
File f = new File("d:/aaa/bbb.java");
System.out.println("文件绝对路径:"+f.getAbsolutePath());
System.out.println("文件构造路径:"+f.getPath());
System.out.println("文件名称:"+f.getName());
System.out.println("文件长度:"+f.length()+"字节");
5.判断方法
(1)public boolean exists()
:此File表示的文件或目录是否实际存在。
(2)public boolean isDirectory()
:此File表示的是否为目录。
(3)public boolean isFile()
:此File表示的是否为文件。
注:(2)、(3)在目录不存在时均为False!
![](/qrcode.jpg)
6.创建与删除方法
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件(创建前已存在会出现IOException异常)。
public boolean delete()
:删除由此File表示的文件或目录(删除文件夹时文件夹中有内容不会删除并返回False)。
public boolean mkdir()
:创建由此File表示的目录(只能创建单极空文件夹)。
public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录(可创建单级空、多级文件夹)。文件夹不存在:创建文件夹并返回True;文件夹已存在返回False;若路径不存在,不会抛出异常并且返回True但是不会创建。
================================
注:均需要调用java.io.IOException
方法。
import java.io.File;
import java.io.IOException;
public class File1 {
public static void main(String[] args) throws IOException {
// 文件的创建
File f = new File("aaa.txt");
System.out.println("是否存在:"+f.exists()); // false
System.out.println("是否创建:"+f.createNewFile()); // true
System.out.println("是否存在:"+f.exists()); // true
// 目录的创建
File f2= new File("newDir");
System.out.println("是否存在:"+f2.exists());// false
System.out.println("是否创建:"+f2.mkdir()); // true
System.out.println("是否存在:"+f2.exists());// true
// 创建多级目录
File f3= new File("newDira\\newDirb");
System.out.println(f3.mkdir());// false
File f4= new File("newDira\\newDirb");
System.out.println(f4.mkdirs());// true
// 文件的删除
System.out.println(f.delete());// true
// 目录的删除
System.out.println(f2.delete());// true
System.out.println(f4.delete());// false
}
}
7.遍历方法
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录(封装为File类并储存在数组中,只要拿到了File对象,那么就可以进行更多操作)。
File dir = new File("d:\\java_code");
String[] names = dir.list();
for(String name : names){
System.out.println(name);
}
==========================================================
File[] files = dir.listFiles();
for (File file : files) {
System.out.println(file);
}