文件与流(一),thinking in java

来源:互联网 发布:ug8.0编程中的建模创 编辑:程序博客网 时间:2024/06/05 12:00

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家谱图



原创粉丝点击