1、构造方法:常用的有两个
(1)File(String directoryPath)//directoryPath是包含有文件名的路径名,利用该构造函数创建一个文件:
//指定路径和文件名
//File file = new File("C:" +File.separator + "1.txt");
File file = new File("C:\\1.txt");
//路径分隔符:在Window系统下,文件路径是C:\1.text,但是在Java中‘\’是转义字符,我们用双斜杠,编译器会自动识别。c:/1.text适合所有系统
//创建文件
boolean isOK = file.createNewFile();
System.out.println(isOK);
(2)File(String directoryPath, String filename),利用该构造函数创建一个文件的使用方法:
File file = new File("c:/abc");//先创建一个目录
File file2 = new File(file, "abc.txt");//在该目录下创建一个文件
file2.createNewFile();
2、如何创建目录:
File file = new File("c:/abc/hello/world");
file.mkdir();//前提是world的上级目录不许存在,也就是说c:/abc/hello必须存在
file.mkdirs();//直接创建c:/abc/hello/world
System.out.println(file.isDirectory());//判断创建的是不是目录
3、打印目录:只会打开该路径下的第一层子目录
File file = new File("C:/Users");
String[] names = file.list();
for(String name:names)
{
System.out.println(name);
}
此方法同:
File[] files = file.listFiles();
for(File f: files)
{
System.out.println(f.getName());
}
4、删除文件或目录:前提文件或目录必须存在
若删除的是目录,那么该目录下的子目录必须是空;如果该目录下都是文件则可以直接删除,否则只能先删除该目录的子目录,必须递归实目录的删除
public static void deleteAll(File file)
{
if (file.isFile() || file.list().length == 0)//如果该file本身是文件或者该file是个空目录
{
file.delete();
}
else {
File[] files = file.listFiles();//获取待删除目录的内容
for(File f : files)
{
deleteAll(f);//先删除该目录下的目录
f.delete();//删除自身
}
}
}
5、文件过滤:找出某目录下的.java文件
File file = new File("C:/abc");
String[] names = file.list(new FilenameFilter() {
//此处用到了策略模式
@Override
public boolean accept(File dir, String name)//决定什么样的文件将会被返回
{
if (name.endsWith(".java")) {
return true;
}
return false;
}
});
for(String name : names)
{
System.out.println(name);
}