1,关于File类
File类是IO包中惟一表明磁盘文件自己的对象,
File类定义了一些与平台无关的方法来操做文件。
经过调用File类提供的各类方法,可以完成建立、删除文件、重命名文件、判断文件的读写权限权限是否存在、设置和查询文件的最近修改时间等操做。
2,File类主要操做
public static void main(String[] args) {
//File类的静态变量,分别表明当前系统下的:; ; \ \
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);
System.out.println(File.separatorChar);
String pathName = "D:" + File.separator + "mytemp";//在win下等同于:D:/mytemp 或 D:\\mytemp
/**
* File共有4中构造方法,没有无参构造方法
* 1,传入路径(经常使用)
* 2,传入URI
* 3,传入父File,子路径
* 4,传入父路径,子路径
*/
File file = new File(pathName);//得到D:/mytemp这个对象
if(file.exists() && file.isDirectory()) {//file是否存在而且是不是目录
System.out.println("file是目录\n");
File[] files = file.listFiles();//获取目录下的子目录和文件(仅当层目录下)
System.out.println("目录下有:\n");
for(File f : files) {
System.out.println(f);
}
System.out.println("#############################\n");
System.out.println(files[0].isFile() ? "files[0]是文件" : "files[0]是目录");
System.out.println("files[0]的名字:" + files[0].getName());
System.out.println("files[0]的路径:" + files[0].getPath());
System.out.println("files[0]的绝对路径:" + files[0].getAbsolutePath());
System.out.println("files[0]的父目录路径" + files[0].getParent());
System.out.println(files[0].canRead() ? "files[0]可读" : "files[0]可读");
System.out.println(files[0].canWrite() ? "files[0]可写" : "files[0]可写");
System.out.println(files[0].canExecute() ? "files[0]可执行" : "files[0]可执行");
System.out.println(files[0].isAbsolute() ? "files[0]的路径是绝对路径" : "files[0]的路径不是绝对路径");
System.out.println("files[0]的路径转换为URI:" + files[0].toURI());
long lastModifiedTime = files[0].lastModified();//得到文件上次修改时间,单位s
Date date = new Date(lastModifiedTime);
SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormate.format(date);
System.out.println("files[0]的上次修改时间:" + format);
//删除文件的时候,不会进入回收站
//删除目录的时候,若是有子文件或子目录,不会删除成功
if(files[2].exists()) {
files[2].delete();//删除files[2],这是一个目录
}
if(files[6].exists()) {
files[6].deleteOnExit();//当虚拟机终止时删除files[6],这是一个文件
}
}
}
3,建立File
@Test
public void test() throws IOException {
File parent = new File("D:" + File.separator + "mytemp");
if(parent.exists()) {
System.out.println("父目录存在");
File childFile = new File(parent,"a.txt");
if(childFile.createNewFile()) {//建立文件,若是建立成功
System.out.println("文件建立成功!");//若是存在同名文件,不会建立
};
File childDirectory = new File(parent,"a");
if(childDirectory.mkdir()) {//建立目录,若是建立成功
System.out.println("目录建立成功!");//若是存在同名目录,不会建立
};
}
}
4,删除File
public static void deleteFile(File file) {
File[] files = file.listFiles();
if(files != null) {
for(File f : files) {
if(f.isDirectory()) {
deleteFile(f);
}
f.delete();
}
}
file.delete();
}