file 可以是目录和文件(只是是java程序与系统的文件进行一种关联) File file1 = new File("f:/mytest", "test5.txt"); //根路径,和子路径,都可以是目录,子路径可以是文件。
File file2 = new File("f:/mytest/test2.txt");
File file3 = new File("f:/mytest");
File file4 = new File(file3, "test3.txt");
File file = new File("f:/mytest/1/2");
File file5 = new File("f:/mytest/a.txt");
// new File("f:/mytest/my.txt").createNewFile();
System.out.println(file1.createNewFile());//创建一个文件:文件路径必须存在才行(即目录已经存在)
System.out.println(file.mkdir());//创建单个目录
System.out.println(file3.exists());
System.out.println(Arrays.toString(file3.listFiles()));//只是当前目录对象的下一级的文件和目录的具体对象
System.out.println(Arrays.toString(file3.list()));//下一级的目录和文件返回字符串(只是单独路径)
System.out.println(file3.isHidden());
System.out.println(file.mkdirs());//创建多级目录
注意:在设置路径的时候,把冒号写错成分号了,结果被当成了相对路径。在项目当前路径中创建了
输出:
false
false
true
[f:\mytest\1, f:\mytest\a.txt, f:\mytest\test5.txt]
[1, a.txt, test5.txt]
false
false
2.文件路径的定义几种格式:
System.out.println(File.pathSeparator);//路径分割符windows是冒号:
System.out.println(File.separator);//分解分割符,windons是反斜杠\
String path="E:\\a\\b";//反斜杠在java中表示转义所以需要两个
path="e:\\"+File.separator+"a";
path="e:/a/b";//推荐这种简单
3.file不指定路径
//不指定路径文件默认是工程下:E:\workspace2\test\a.txt
System.out.println(new File("a.txt").getAbsolutePath());
常见方法:获取
File f = new File("a/a.txt");
File f2 = new File("e:/f/a.txt");
System.out.println("--------------");
System.out.println(f.getName());
System.out.println(f2.getName());
System.out.println(f.getPath());
System.out.println(f2.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getParent());
System.out.println(f2.getParent());//如果只是file("a.txx")父路径将为null
File[] listFiles()//返回文件夹下的文件和目录数组对象数组
String[] list()//返回文件夹下的文件和目录字符串
输出:
a.txt
a.txt
a\a.txt//相对路径的文件的路径
e:\f\a.txt///绝对路径的路径的路径
E:\workspace2\test\a\a.txt
a//相对的父路径
e:\f//绝对的父路径 过滤文件名称:可以实现FileNameFilter的回调方法
String[] name = f.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// 文件下的dir 目录对象;name文件名称
return name.endsWith("java");
}
});
判断:
System.out.println(f.isAbsolute());//是否是绝对路径
System.out.println(f.isFile());//文件是true,文件夹或不存在的都是false;
System.out.println(new File("f:/mytest").isDirectory());//是否是目录
创建:删除文件:
f.createNewFile();
f.delete(); File.createTempFile("tes", ".temp",new File("F:/a"));//创建临时文件
f2.deleteOnExit();//程序退出文件删除。
f.mkdir();//创建目录,父目录必须存在否则创建失败
f.mkdirs();//创建多级目录