你的位置:首页 > Java教程

[Java教程]流式I/O和文件


1、普通输入输出类

    1.1    InputStream类型:用来表示从不同数据源产生输入的类,数据源包括
            字节数组
            String对象
            文件
            管道:工作方式与实际管道相似,从一端输入,从另一端输出;
            一个由其他种类的流组成的序列,以便可以将它们收集合并到一个单一的流内;
        1.1.1    每一种数据源都有相应的InputStream子类。
        1.1.2    FilterInputStream也属于一种InputStream,为“decorator”类提供基类,而“decorator”类可以把属性或有用的接口与输入流连接在一起
        1.1.3    InputStream的子类  
子类功能
构造器参数
ByteArrayInputStream
允许将内存的缓冲区当作InputStream使用 
StringBufferInputStream
将String转换为InputStream
 
FileInputStream
用于从文件中读取信息
 
PipedInputStream
产生用于写入相关PipedOutputStream
 
SequenceInputStream
将两个或多个InputStream对象转换成单一InputStream
 
FilterInputStream
作为修饰器的接口,其中,修饰器为其他的InputStream类提供有用功能
 
    1.2    OutputStream类型:用来把产生的数据源输出到不同的数据源中,这些数据源包括
            字节数组(非字符串)
            文件或管道
        1.2.1    OutputStream的子类
 
子类
功能
构造器参数
ByteArrayOutputStream
在内存中创建缓冲区,所有送往stream的数据都要放置在此缓冲区
 
FileOutputStream
用于将信息写至文件
 
PipedOutputStream
传送输出流可以连接到传送输入流,以创建通信管道。传送输出流失管道的发送端
 
    1.3    FilterInputStream类:能够完成两件完全不同的事情
功能
构造器参数
DataInputStream
与DataOutputStream搭配使用,故可安装可移植方式从流读取基本数据类型(int,char,long)
 
BufferedInputStream
使用它可以防止每次读取是都得进行实际写操作
 
LineNumberInputStream
跟踪输入流中的行数,可调用getLineNumber()和setLineNumber(int)读取和设置行号
 
PushbackInputStream
具有“one byte push-back buffer”,因此可以将读到的最后一个字符回退
 
        1.4    FilterOutputStream类

功能
构造器参数
DataOutputStream
与DateInputStream搭配使用,可以按照可移植方式向流中写入基本类型数据(int,char,long)
 
PrintStream用于产生格式化输出,其中DataOutputStream处理数据的存储,PrintStream处理显示
 
BufferedOutputStream
使用它可以避免每次发送数据时都要进行实际的写操作,代表“使用缓冲区”,可以调用flush()清空缓冲区