java.io.File:代表文件或目录,包含时间、文件路径、等信息
构造函数:
主要方法:
可读写,canRead(),canWrite(),canExecute()
目录信息,
目录创建,
子目录,list()及重载的list(FileNameFilter filter) Stragety design patern
FileNameFilter接口代表list方法的“stragety”,实现接口必须重写accept方法:尝试写一个简单的例子,列出目录下所有的txt文档:
package review;
import java.io.*;
/**
*
* @author Administrator
*/
public class TxtFinder {
/*
* Constructor
*/
public TxtFinder(File dir){
this.dir=dir;
}
public TxtFinder(String dir){
this.dir=new File(dir);
}
public String[] find(){
String[] files;
files=dir.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
name=name.toLowerCase();
return name.endsWith(".txt");
}
});
return files;
}
private File dir;
/*
* for test
*/
public static void main(String[] args){
String[] files=new TxtFinder(".").find();
for(String fname:files){
System.out.println(fname);
}
}
}
文件删除,
重命名,
文件创建,
修改文件属性,
输入输出流
文件输入与输出流总体可分两大门派:面向字节的InputStream,OutputStream家族;面向unicode字符的Reader,Writer家族。
InputStream:
InputStream的继承者:一种是代表输入来源(source);另一种作为 decorator
实现类:代表输入产生的来源,如 字节数组、文件 pipe sequence 网络连接等...
AudioInputStream 多媒体
ByteArrayInputStream 字节数组
FileInpuStream 文件
PipedInputStream "Pipe,which works like a physical pipe,put things in at an end and they come out the other"
SequenceInputStream " A sequence of other sreams"
StringBufferInputStream
ObjectInputStream 用于序列化
抽象类:“decorator” (Decorator design pattern)
FilterInputStream
OutputStream
ByteArrayOutputStream
FileOutputStream
PipedOutputStream
ObjectOutputStream
抽象类:
FilterOutputStream
图1是一张来自core Java8的InputStream and OutStream家谱图
Reader
Writer
图2是来自core Java的Reader and Writer家谱图