关于java基础--File类与FileFilter过滤器的详解与测试

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());

}

}

}

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值