File类:
File类:
File类描述了和品台无关的目录和文件。可以新建、删除、重命名等但File不能访问文件内容(需要使用流操作)
1:访问目录和文件:
创建File实例:
new File("绝对路径"); new File(Url对象) File(File parent, String child)
访问文件:
String getName(); String getPath(); Boolean renameTo(File newName) String getParent();
File getAbsoluteFile();//此File对应的绝对路径对应的File对象 String getAbsolutePath();
检测文件:
Boolean exists(); //是否存在File对象对应的文件或者目录。
Boolean canWrite(); Boolean canRead();
Boolean isFile(); //File对象对应的是不是文件。
Boolean isAbsolute(); //判断此File对象对应的路径是不是绝对路径。
文件信息:
long lastModified(); //最近一次修改的时间戳
long length(); //返回文件的长度
文件操作:
boolean createNewFile(); //当此File对象对应的文件不存在时,创建一个新的。
boolean delete(); //删除文件或者目录路径
(
static File createTempFile(String prefx,String suffix):创建临时文件。
deleteOnExit():当关闭虚拟机是删除这个文件。
)
目录操作:
boolean mkdir(); //视图创建一个目录,此File对象对应的路径需要是一个目录。
String[] list(); //列出所有子文件名和路径名。
File[] listFile();
Demo:
package demo; import java.io.File; import java.io.IOException; public class Demo { public static void main(String[] args) throws IOException { File file = new File("."); //在创建一个File对象,对应的路劲是当前路劲 System.out.println(file.getName()); System.out.println(file.getParent()); //file对象对应的相对路劲时:返回null(没有父文件) System.out.println(file.getAbsoluteFile()); //获取绝对路径对应的File对象 System.out.println(file.getAbsolutePath()); //获取绝对路径 System.out.println(file.getAbsoluteFile().getParent()); //*** 相对路径的File对象使用getParent方法会出错。 //创建一个临时文件,虚拟机退出时删除之 File tempFile = File.createTempFile("aaa",".txt",file); tempFile.deleteOnExit(); //以当前的时间戳座位文件名创建一个文件(当前目录下) File nowTimeFile = new File(System.currentTimeMillis()+""); //一制定File对象创建一个文件 nowTimeFile.createNewFile(); String[] fileList = nowTimeFile.list(); //当前文件下的所有文件和目录。 } }
package demo; import java.io.File; import java.io.IOException; public class Demo { public static void main(String[] args) throws IOException { for (int i = 0 ; i <10000 ; i++){ if(i%100 ==0){ File file = new File("F:"+File.separator+"File"+File.separator+""+System.currentTimeMillis()+".txt"); file.createNewFile(); //创建成功 System.out.println(file.mkdir()); //创建失败。false System.out.println("@@@@"+i); } } } }
文件过滤器:
File的list方法中接收一个FilenameFilter的参数,通过该参数可以识别出符合条件的文件。
FilenameFilter接口中有一个accept(File dir,String name)方法,该方法后迭代指定目录的子目录和文件,找到符合条件的目录或文件。
1 package demo; 2 import java.io.File; 3 import java.io.FilenameFilter; 4 import java.io.IOException; 5 public class Demo { 6 public static void main(String[] args) throws IOException { 7 File file = new File("F:"+File.separator+"File"+File.separator); 8 String [] nameList = file.list(new MyFilenameFilter()); 9 for (String name : nameList){ 10 System.out.println(name); 11 } 12 } 13 } 14 class MyFilenameFilter implements FilenameFilter{ 15 @Override 16 public boolean accept(File dir, String name) { 17 //如果文件名以.java结尾或者文件对应一个路劲,返回true 18 return name.endsWith(".java") || new File(name).isDirectory(); 19 } 20 }