模块 java.base
软件包 java.io
Class File
java.lang.Object
java.io.File
实现的所有接口
Serializable , Comparable
public class File
extends Object
implements Serializable, Comparable
文件和目录路径名的抽象表示。
用户界面和操作系统使用依赖于系统的路径名字符串来命名文件和目录。 此类提供了一个抽象的,与系统无关的分层路径名视图。 抽象路径名有两个组成部分:
/**
* File类:方法测试
*/
@Test
public void test() throws IOExceptio{
//File(File parent, String child)
//从父抽象路径名和子路径名字符串创建新的 File实例。
File file = new File("he.txt");
//File(String parent, String child)
//从父路径名字符串和子路径名字符串创建新的 File实例。
File file1 = new File("D:\\qycache\\", "hcdn_cache");
//File(File parent, String child)
//从父抽象路径名和子路径名字符串创建新的 File实例。
File file2 = new File("he.txt", "hcdn_cache");
System.out.println(file + "\t" + file1 + "\t" + file2);//he.txt D:\qycache\hcdn_cache he.txt\hcdn_cache
//boolean canExecute()
//测试应用程序是否可以执行此抽象路径名表示的文件。
System.out.println( file.canExecute());//false
//boolean canRead()
//测试应用程序是否可以读取此抽象路径名表示的文件。
//boolean canWrite()
//测试应用程序是否可以修改此抽象路径名表示的文件。
System.out.println(file.canRead() + "\t" + file.canWrite());//false false
//int compareTo(File pathname)
//按字典顺序比较两个抽象路径名。
System.out.println(file.compareTo(file1));//4
//boolean createNewFile()
//当且仅当具有此名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新空文件。
file.createNewFile();//需要抛异常
//boolean mkdir()
//创建此抽象路径名指定的目录。
//boolean mkdirs()
//创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。
file.mkdir();
file.mkdirs();
//boolean delete()
//删除此抽象路径名表示的文件或目录。
file1.delete();
System.out.println(file1);
//boolean exists()
//测试此抽象路径名表示的文件或目录是否存在。
System.out.println(file2.exists());//false
//File getAbsoluteFile()
//返回此抽象路径名的绝对形式。
System.out.println(file2.getAbsoluteFile());//E:\JAVA\ideatest\he.txt\hcdn_cache
//String getName()
//返回此抽象路径名表示的文件或目录的名称。
System.out.println(file2.getName());//hcdn_cache
//String getParent()
//返回此抽象路径名父项的路径名字符串,如果此路径名未指定父目录,则返回 null 。
System.out.println(file.getName());//he.txt
System.out.println(file1.getParent());//D:\qycache
//long length()
//返回此抽象路径名表示的文件的长度。
System.out.println(file.length());//0
//String[] list()
//返回一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。
// String[] strings = file2.list();
// for (Object obj : strings){
// System.out.print(obj + "\t");//java.lang.NullPointerException,空指针没有数据
// }
//String toString()
//返回此抽象路径名的路径名字符串。
System.out.println(file2.toString());//he.txt\hcdn_cache
//long lastModified()
//返回上次修改此抽象路径名表示的文件的时间。
System.out.println(file.lastModified());//0
System.out.println(new Date(file.lastModified()));//Thu Jan 01 08:00:00 CST 1970
System.out.println(newSimpleDateFormat().format(newDate(file.lastModified())));
//1970/1/1 上午8:00
}
内存中创建新的文件,文件夹:
/**
* 创建file文件测试
*/
@Test
public void test1() throws IOException {
//方式一:
// static File createTempFile(String prefix, String suffix)
//在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
//static File createTempFile(String prefix, String suffix, File directory)
//在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
File file = File.createTempFile("haha", "xixi", new File("D:\\"));
System.out.println(file);//D:\haha16991929895628673159xixi
//String getParent()
//返回此抽象路径名父项的路径名字符串,如果此路径名未指定父目录,则返回 null 。
File file4 = new File(file.getParent(), "hahah.txt");
file4.createNewFile();
System.out.println(file4);//D:\hahah.txt 存在文件
file.delete();
file4.delete();
//方式二:
//boolean createNewFile()
//当且仅当具有此名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新空文件。
File file1 = new File("D:\\","TEST");
//创建文件夹,在这之前是没有新建目录的
file1.mkdir();
System.out.println(file1);//D:\TEST 此时已经有这个目录了
File file2 = new File(file1, "haha");
System.out.println(file2);//D:\TEST\haha 有目录,还没有haha这个文件
file2.mkdir();
System.out.println(file2);//D:\TEST\haha 有目录,有haha文件夹
file2.createNewFile();
System.out.println(file2);//D:\TEST\haha 与前面创建一样,没有任何变化
File file3 = new File(file1, "haha.txt");
file3.createNewFile();
System.out.println(file3);//D:\TEST\haha.txt 创建了haha.txt的文件
//删除要按顺序,保证文件夹里没有文件才可以删除,否则删除不了
file2.delete();
file3.delete();
file1.delete();//删除1要放在最后面
}