File类的用途
java.io.File用于表示文件(目录),可以通过 File 类在程序中操作硬盘上的文件和目录。
File 类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。
java.io.File常用API
构造器
File(String pathname)
// 参数为相对路径
File dir = new File(".");
File(File parent, String child)
File demo = new File(dir, "demo");
File(String parent, String child)
File demo2 = new File("demo", "lv1/lv2/lv3");
方法
String getPath() 取得相对路径
File dir = new File(".");
System.out.println(dir.getPath());// .
String getAbsolutePath() 取得绝对路径
System.out.println(dir.getAbsolutePath());// G:\github\xuxu\.
String getCanonicalPath() 取得规范化的绝对路径
System.out.println(dir.getCanonicalPath());// G:\github\xuxu
boolean exists() 判断文件或目录是否存在
boolean mkdir() 创建目录
if (!demo.exists()) {
demo.mkdir();
}
boolean mkdirs() 创建多级目录
File demo2 = new File("lv1/lv2/lv3");
if (!demo2.exists()) {
demo2.mkdirs();
}
boolean createNewFile() 创建一个新的空文件
File test = new File(demo, "test.txt");
if (!test.exists()) {
test.createNewFile();
}
File[] listFiles() 取得目录内容
//如果是目录,返回该目录下包含的内容(仅一级,不会往下递归)
File[] files = demo.listFiles();
System.out.println(Arrays.toString(files));
//如果不是目录,此方法返回null
File[] files2 = test.listFiles();
System.out.println(files2);//null
long length() 取得文件长度
long lastModified() 取得文件的最后修改时间
System.out.println(new Date(test.lastModified()));
boolean delete() 删除文件或目录
File[] files = demo.listFiles();
for (File file : files) {
file.delete();//删除文件
}
//如果是目录,则必须是空的才能删除掉
demo.delete();
测试File类的API
package demo.java.io.file;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) throws IOException {
// 参数为相对路径
File dir = new File(".");
// getCanonicalPath()取得规范化的绝对路径
System.out.println(dir.getCanonicalPath());// G:\github\xuxu
// getAbsolutePath()取得绝对路径
System.out.println(dir.getAbsolutePath());// G:\github\xuxu\.
// getPath()取得相对路径
System.out.println(dir.getPath());// .
File demo = new File(dir, "demo");
System.out.println(demo.getPath());// .\demo
if (!demo.exists()) {
demo.mkdir();
}
File demo2 = new File("demo", "lv1/lv2/lv3");
System.out.println(demo2.getCanonicalPath());// G:\github\xuxu\demo\lv1\lv2\lv3
if (!demo2.exists()) {
demo2.mkdirs();
}
File test = new File(demo, "test.txt");
File test2 = new File(demo, "test2.txt");
if (!test.exists()) {
test.createNewFile();
}
if (!test2.exists()) {
test2.createNewFile();
}
File[] files = demo.listFiles();
System.out.println(Arrays.toString(files));
File[] files2 = test.listFiles();
System.out.println(files2);// null
System.out.println(demo.length());
System.out.println(test.length());
System.out.println(new Date(test.lastModified()));
for (File file : files) {
file.delete();
}
demo.delete();// 目录必须是空的才能删除掉
}
}
网友评论