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 }