String pathName = "e:\\java_code\\day22e\\Test22\\hello.java";
File f1 = new File(pathName);//将Test22文件封装成对象.注意:有可以封装不存在文件或者文件夹,变成对象
System.out.println(f1);
File f2 = new File("e:\\java_code\\day22e\\Test22","hello.java");
//将parent封装成file对象
//封装后可以按照文件对象的方法进行操作,没有封装只是字符串
File dir = new File("e:\\java_code\\day22e\\Test22");
File f3 = new File(dir,"hello.java");
private static final String FILE_SEPARATOR = System.getProperty("file.separator");
File f4 = new File("e:"+FILE_SEPARATOR+"java_code"+FILE_SEPARATOR+"day22e");
//下面方法一样
File f5 = new File("e:"+File.separator+"java_code"+File.separator+"day22e"+File.separator+"Test22","hello.java");
--------------------------------------------------------
获取绝对路径:
File file = new File("Test22.java");
//File中封装的是什么获取的就是什么
String path = file.getPath();
//获取绝对路径
String absPath = file.getAbsolutePath();
获取文件名
String filename = file.getName();
//获取文件大小
long size = file.length();
//获取最后修改时间
long time = file.lastModified();
--------------------------------------------------------------------
File对文件或者文件夹的操作
File file = File("e:\\file.txt");
/*
创建文件,如果文件不存在,返回true
如果文件存在返回false
如果路劲错误;IOException;
*/
boolean b1 = file.creatNewFile();
//删除
boolean b2 = file.delete();//注意:不去回收站,直接删除,慎用
//判断文件是否存在
boolean b3 = file.exists();
//对目录操作,创建,删除,判断
File dir = new File("e:\\abc");
boolean b4 = dir.mkdir();//创建目录
//dir.mkdirs();创建多级目录
boolean b5 = dir.delete();//删除目录时,如果目录中有内容,无法删除只有把目录中
//内容都删除后,保证目录为空,这个时候目录才可以被删除
//判断文件,目录
File file = new File("e:\\a.java");//要判断是否是文件还是目录要判断文件是否存在
System.our.println(file.isFile());//
System.out.println(file.isDirectory());
---------------------------------------------------------------
对给定的目录获取其中的内容
//健壮性判断1.必须存在,2.必须是目录否则容易引发出现数组为null,出现NullPointerException
File file = new File("e:\\java_code");
String[] names = dir.list();//获取当前目录下的文件夹和文件的名称
for(String name : names){
System.out.println(name);
}
File[] files = dir.listFiles();//获取当前目录下的文件以及文件夹对象
for(Files[] file : files){
System.out.println(file.lastModified());
----------------------------------------------------------------------------
需求2:获取目录中的内容,但是只用".java"文件
File dir = new File("E:\\Java_code\\day06");
File[] files = dir.listFiles();//需要传递一个文件名过滤器FilenameFilter对象
for(File[] file : files){
if(file.gerName().endsWith(".java")){
System.out.println(file.gerName());
}
}
//以上写法代码被写死了,不好修改
//通过实现接口FilenameFilter接口中accept方法改进
===============实现文件名过滤器,需要实现FilenameFilter接口=========
public class FilenameFilterByJava implements FilenameFilter{
@override
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
}
=======================================================
File[] files = dir.listFiles(new FilenameFilterByJava());
for(File file : files){
System.out.println(file.getName());
}
===========指定扩展名过滤====================================
public class FilenameFilterBySuffix implements FilenameFilter{
private String suffix;
pulic FilenameFilterBySuffix(String suffix){
super();
this.suffix = suffix;
}
@override
public boolean accept(File dir,String name){
return name.endsWith(suffix);
}
}
}
|
|