您的位置:首页 > 其它

File类的用法总结,及文件过滤器的介绍。

2012-12-14 22:53 375 查看

一、字段摘要:

static String separator //与系统有关的默认名称分隔符

二、构造方法

File file = new File(String pathName);//参数可以传目录路径,或者文件路径[b](相对和绝对均可)。[/b]

File file = new File(String parent,String child);//根据 parent 路径名字符串和 child 路径名字符串创建一个新
File
实例。


File file = new File(File parent,String child);//据 parent 抽象路径名和 child 路径名字符串创建一个新
File
实例。


package FileDemo;

import java.io.File;

public class FileDemo {
public static void main(String[] args) {
File f1 = new File("D:\\demo.txt");
File f2 = new File("D:\\","demo.txt");
File f = new File("D:\\");
File f3 = new File(f,"demo.txt");
File f4 = new File("D:"+File.separator+"abc"+File.separator+"a.txt");
}
}


三、主要方法:

获取方法:获取文件名称 String getName();//返回文件名称
获取文件路径 String getAbsolutePath();//返回文件绝对路径(带有盘符)
String getPath();//返回文件相对路径(相对该java工程文件夹的)
获取文件大小 long length();//翻译文件的大小。大为字节。如果对象为目录,返回值不确定。
获取修改时间 long lastModified();//返回文件的最后修改时间,毫秒单位。
public static void method() {
File f = new File("D:\\aba\\demo.txt");
String name = f.getName();
String abspath = f.getAbsolutePath();//绝对路径
String path = f.getPath();//相对路径。
long len = f.length();
long time = f.lastModified();
Date date = new Date(time);
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
String str_time = dateFormat.format(date);
System.out.println("name:"+name);
System.out.println("abspath:"+abspath);
System.out.println("path:"+path);
System.out.println("len:"+len);
System.out.println("Date:"+date);
System.out.println("str_time:"+str_time);
}


创建和删除:
创建

boolean createNewFile();//创建文件,当创建成功时返回true,否则false。当对象存在时,创建失败。
boolean mkdir();//创建单层目录。当该目录的父目录不存在时返回false。
boolean mldirs();//创建多层目录。包括不存在的父目录。

删除

boolean delete();//删除文件或者目录。当删除成功时返回true。当文件不存在时返回false。
//当删除目录时,成功返回true,否则返回false。在删除目录时,当在目录中为空时,才能将其删除。当该目录对象为多层时,删除的是最底层目录。

public static void createAndDelete() throws IOException {
File dir = new File("abb");
File dir2 = new File("asdf\\dfgd\\dfgdf\\dfgdf\\d\\dfg");
dir2.mkdirs();//创建堆积目录。
dir2.delete();//删除最底层文件或者文件目录。此处如dfg
boolean b =dir.mkdir();
System.out.println("b:"+b);
boolean d = dir.delete();
System.out.println("d:"+d);
boolean v = dir.delete();
System.out.println("d:"+v);

/**
* 对文件的操作
*/
//		File f = new File("D:\\aba\\demo.txt");
//		boolean b = f.createNewFile();
//		System.out.println("b= "+b);
//		boolean c = f.delete();
//		System.out.println("c= "+c);
}

is方法

boolean exists();//对象是否存在。
boolean isFile();//对象是否为文件
boolean isDirectory();//对象是否为目录。
当在判断是否文件 目录时,最好先判断是否存在。否则有可能出现都为false,因为可能对象不存在。

public static void isDemo() throws IOException {
File f= new File("asdf");
boolean e = f.exists();
System.out.println("e:"+e);//是否存在
boolean isf = f.isFile();
boolean isd = f.isDirectory();
System.out.println("isf:"+isf+"   isd:"+isd);
}


list方法

static String[] listRoots();//列出可用的文件系统根。结果:C:\ D:\ E:\ F:\

public static void listRootDemo() {
File []files = File.listRoots();
for(File file: files){
System.out.println(file);
}
}


String[] list();//当对象为目录时返回该目录下的所有文件名和目录名的字符串。当为文件时,返回null。即数组长度为0.

File file = new File("C:\\");
String []names = file.list();
for(String name:names){
System.out.println(name);


String[] list(FilenameFilter filter);//返回经过对象名称过滤后的对象名称数组。
一个根据后缀名过滤器的FilenameFilter实现类。该类实现了FilenameFilter接口
package FileDemo;

import java.io.File;
import java.io.FilenameFilter;

/**
* 通过文件后缀名过滤文件
* @author Administrator
*
*/
public class FilterBysuffix implements FilenameFilter {

public FilterBysuffix(String suffix) {
super();
this.suffix = suffix;
}
private String suffix;
public boolean accept(File file, String name) {

return name.endsWith(suffix);
}
}

测试程序
public static void main(String[] args) {
File file = new File("C:\\");
String []names = file.list(new FilterBysuffix("sys"));
for(String name:names){
System.out.println(name);

}
}

File[] ListFiles(FileFilter filter);//返回通过对象过滤后的文件数组。
一个过滤隐藏的文件的FileFilter实现类。该类实现了FileFilter接口。
package FileDemo;

import java.io.File;
import java.io.FileFilter;

/**
* 过滤隐藏的文件。
* @author Administrator
*
*/
public class FilterByHedden implements FileFilter {

@Override
public boolean accept(File pathname) {
return !pathname.isHidden();
}
}

测试代码:
public static void main(String[] args) {
File file = new File("C:\\");
File[]names = file.listFiles(new FilterByHedden());
for(File name:names){
System.out.println(name);
}
}


查看目录空间的方法:该程序中返回的是D盘的信息。

public static void listRootDemo() {
File file =new File("D:\\软件库\\驱动");
//返回此抽象路径名指定的分区大小。盘分区大小。
System.out.println("getTotalSpace:  "+file.getTotalSpace());
// 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。可用大小
System.out.println("getUsableSpace:  "+file.getUsableSpace());
//返回此抽象路径名指定的分区中未分配的字节数。可用大小
System.out.println("getFreeSpace:  "+file.getFreeSpace());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: