1,File
* File类是与平台无关的一个指向路径的文件或者目录的一个类
* 如果要在程序中操作某个文件,就用这个文件的路径去创建一个File对象,此时这个对象就指向那个路径的文件
* 就可以对那个文件进行创建,删除,重命名等操作.
File file = new File("e:\\abc.txt");
1-1,canExecute()测试该file指向的路径下的文件是否可以操作
boolean b = file.canExecute();
System.out.println(b);
1-2,canRead()判断指定的文件能否可读
boolean b1 = file.canRead();
System.out.println(b1);
1-3,canWrite()判断指定的文件能否可写
boolean b2 = file.canWrite();
System.out.println(b2);
1-4,createNewFile()创建指定的文件
//判断该文件是否存在,不存在了就创建
if(!file.canExecute()){
try {
//创建指定文件
//判断指定的文件能否可读
boolean b3 = file.createNewFile();
//文件是否创建成功
System.out.println(b3);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
1-5,在指定的目录中创建一个文件使用给定的前缀(文件名,长度大于3个字符)和后缀名
//实际的前缀名有:指定的前缀名+随机数
File f = null;
try {
f = File.createTempFile( "Hello",".txt",new File("e:\\") );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//让程序等待两秒中再往下执行
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();}
1-6,删除文件:delete(),deleteOnExit()
删除文件,一旦调用这个方法,该文件马上删除
f.delete();
在虚拟机退出(程序执行完毕后)时删除指定的文件
f.deleteOnExit();
1-7,exists()判断指定的目录是否存在
存在返回true,否则false
boolean bo =file.exists();
System.out.println(bo);
1-8,通过相对路径创建一个文件对象返回抽象路径的绝对路径
File f1 = new File("abc.txt");
1-9.获取绝对路径:getAbsolutePath(), getAbsoluteFile()
获取此相对路径所表示的绝对路径字符串,程序默认会在该程序所在的目录作为父目录
String path = f1.getAbsolutePath();
System.out.println("绝对路径为: "+path);
//获取此相对路径所表示的绝对路径的一个File对象
File f2 =f1.getAbsoluteFile();
System.out.println("绝对路径为: "+f2);
1-10,getFreeSpace()返回指定的磁盘还有多少可用空间,单位为"B"
File f3 = new File("d:\\");
long space = f3.getFreeSpace()/1024/1024/1024;
System.out.println("d盘还有:"+space+"G 空间可以用");
1-11,getName()获取该对象指定的文件名
String fileName = file.getName();
System.out.println("该文件的名称为:"+fileName);
//获取该文件的父目录
String parent = file.getParent();
System.out.println(parent);
//以字符串的形式返回该文件的路径
String filePath =file.getPath();
System.out.println(filePath);
//判断该路径是不是绝对路径
boolean bo1 =file.isAbsolute();
System.out.println("该文件是不绝对路径:"+bo1);
//判断该路径是不是一个目录
Boolean bo2 = file.isDirectory();
System.out.println("该文件是不是一个目录:"+bo2);
//判断该路径是不是一个标准的文件
Boolean bo3 = file.isFile();
System.out.println("该文件是不是一个标准的文件:"+bo3);
1-12,lastModified()返回最后一次修改的时间
//返回该文件最后一次修改的时间,从1970.1.1 00:00:00到最后一次修改的时间的毫秒数
long time =file.lastModified();
System.out.println("该文件最后一次修改的时间为:"+time);
//返回该文件的长度966882
long len =file.length();
System.out.println("此文件的长度为:"+len);
//获取本机中的根磁盘
File[] rootList = File.listRoots();
1-13,创建目录:mkdir(),mkdirs()
//创建目录,如果该目录的父目录不存在则创建失败
mik.mkdir();
//创建目录,如果该目录的父目录不存在则一起创建
mik.mkdirs();
1-14,重命名renameTo()
mik.renameTo(new File("e:"+File.separator+"abc"+File.separator+"a"+File.separator+"E"));
file.setReadOnly();
}
}
2,FileFilter
* FileFilter:文件过滤器,它是一个接口
* 它的作用就是在调用listFile()方法时当一个参数传进去.
* accept:执行过滤方法.用用户自己去实现.
public class TestFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
//过滤标准:过滤后缀为.doc文件,允许后缀为.doc的文件通过此过滤器
//获取当前那个被过滤的文件的文件名
String filename = pathname.getName();
if(filename.endsWith(".doc")){
return true;
}else
return false;
}
//查出(F:\个人资料)中的".doc"文件
public static void main(String[] args) {
File file = new File("F:\\个人资料");
//获取指定目录下的满足指定过滤器的文件
//File[] list = file.listFiles(new TestFileFilter());
//使用匿名内部类实现文件过滤
File[] list = file.listFiles(new FileFilter(){
public boolean accept(File pathname) {
String filename = pathname.getName();
if(filename.endsWith(".doc")){
return true;
}else
return false;
}});
//遍历数组
for(File f:list){
System.out.println(f.getPath());
}
}
}