File类中的操作方法比较多,而且大多不是static,所以需要对象调用。
File类的构造函数
获取目录和文件的路径.名称
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f1=new File("c:/lqm/a.txt");//文件
File f2=new File("c:/lqm");//目录(文件夹)
/*获取目录和文件的路径.名称。
* getAbsoluteFile() 返回此抽象路径名的绝对形式的File类型。
* getAbsolutePath() 返回此抽象路径名的绝对路径名的String类型
* getName() 返回该文件或目录的名称。
* getPath() 返回路径名的String类型(和getAbsolutePath()一样)。
* getParent() 返回上级路径名的String类型,没有返回null。
* getParentFile() 返回上级路径名的File类型,没有返回null。
*/
System.out.println(f1.getAbsolutePath());//c:\lqm\a.txt
System.out.println(f1.getName());//a.txt
System.out.println(f1.getPath());// c:\lqm\a.txt
System.out.println(f1.getParentFile());// c:\lqm
System.out.println(f2.getAbsoluteFile());// c:\lqm
System.out.println(f2.getName());//lqm
System.out.println(f2.getParentFile());// c:\
System.out.println(f2.getPath());// c:\lqm
}
}
检测文件的状态
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f1=new File("c:/lqm/a.txt");//文件
File f2=new File("c:/lqm");//目录(文件夹)
/*检测文件或目录的状态
* canExecute() 判断该文件或目录是否为可执行的 (即是否存在)
* canRead() 检查应用程序是否可以读取文件或目录
* canWrite() 检查应用程序是否可以修改文件或目录
* isHidden() 测试文件或目录是否隐藏
* lastModified() 返回文件内容上次修改时间。
* length() 返回文件内容的长度(以字节为单位)。
*/
System.out.println(f1.canExecute());//true
System.out.println(f1.canRead());//true
System.out.println(f1.canWrite());//true
System.out.println(f1.isHidden());//false
System.out.println(new Date(f1.lastModified()).toLocaleString());// 2017-8-29 21:26:52
System.out.println(f1.length());//17
}
}
文件或目录的操作
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f1=new File("c:/lqm/a.txt");//文件
File f2=new File("c:/lqm");//目录(文件夹)
/*文件或目录的操作
* isDirectory() 判断是否是目录
* isFile() 判断是否是文件
* mkdir() 创建当前目录(只能一级目录)
* mkdirs() 创建当前目录(可以创建多级目录)
* createNewFile() 自动创建一个指定路径的新的空文件
* exists() 判断文件或目录是否存在
* delete() 删除文件或目录
* deleteOnExit() 虚拟机终止时, 删除文件或目录
* renameTo(File file) 重命名文件或目录的名称
* list() 返回的目录下所有的文件和目录名称,String数组类型。
* listFiles() 返回的目录下所有的文件和目录,File数组类型。
* listRoots() 返回系统的根目录(所有的盘区) ,File数组类型。
*/
System.out.println(f1.isFile());//true
String[] names=f2.list();
for (String name : names) {
System.out.println(name);
}
/*
a.txt
b.txt
c.txt
*/
File[] names1=f2.listFiles();//true
for (File name : names1) {
System.out.println(name);
}
/*
c:\lqm\a.txt
c:\lqm\b.txt
c:\lqm\c.txt
*/
File[] names2=f2.listRoots();//true
for (File name : names2) {
System.out.println(name);
}
/*
C:\
D:\
E:\
*/
}
}