之前学的IO流都是基础的东西,而且在操作上都仅限于读和取,况且还不是那么的细,所以今天学习的File类对象主要就是能够把文件对象化,并能够轻松的读取或者操作其中的诸如:文件名、创建/修改时间和文件夹路径等等这些细分的功能。
请看例子
import java.io.File;
public class FileDemo {
/**
* @param args
*/
public static void main(String[] args) {
constructorDemo();
}
public static void constructorDemo() {
//可以将一个已存在的,或者不存在的文件或者目录封装成file对象。
File f1 = new File("E:\Text.txt");
File f2 = new File("E:\","a.txt");
File f = new File("E:\");
File f3 = new File(f,"Text.txt");
File f4 = new File("E:"+File.separator+"Eclipse"+File.separator+"工作台"+File.separator+"liangk.txt");
System.out.println(f4);
}
}
以上是最基本的一些方法和用法。
当然,比如你需要制定一个类型的文件来展示,就可以使用文件过滤器来进行处理。
首先创建一个过滤器
import java.io.File;
import java.io.FilenameFilter;
public class FilterByJava implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");//过滤掉txt以外的文件
}
}
然后定义一个File对象来使用
import java.io.File;
importfilter.FilterByJava;
public class FileListDemo {
/**
* @param args
*/
public static void main(String[] args) {
listDemo_2();
}
/*
* 创建指定文件过滤器(全自动)
*/
public static void listDemo_3() {
File f = new File("E:\Eclipse\工作台");
File[] files = f.listFiles(new FilterByJava());
for (File file : files) {
System.out.println(file);
}
}
public static void listDemo() {
/*
* 获取当前目录下的文件以及文件夹的名称,包含隐藏文件。
* 调用list方法的File对象中封装的必须是目录,否则会发生空指针异常
* 如果访问的是系统级目录也会发生空指针异常
*
* 如果目录存在但是没有内容,会返回一个数组,但是长度为0
*
*/
File f = new File("d:\");
String[] names = f.list();
for(String name:names){
System.out.println(name);
}
}
}
当然了,File对象还有很多功能,大家可以在API文档里慢慢去看,慢慢去练习,智言在这里就不在演示了。