Java IO 总结(部分)





以下是一些介绍:

InputStream | OutputStream -->子节流输入/输出的抽象类
    FileInputStream | FileOutputStream -->实现文件的输入/输出
    PipedInputStream| PipedOutputStream -->管道是线程之间同步通信的渠道,一个管道在两个线程之间建立。一个线程用PipedOutputStream以写的方式向另一个线程发送数据,负责接收的线程则通过PipedInputStream从管道中读取数据。
    FilterInputStream | FilterOutputStream -->抽象类,为输入流提供了一些缓冲区、设置或查询读取以及把数据类型集合到基本数据类型、把已读取的某个字节退回去等处理,起到过滤作用。
    (此类有以InputStream/OutputStream为参数的构造方法)
        DataInputStream | DataOutputStream -->基本数据类型过滤流,提供了一些基于多字节的读取/写入方法,从而可以读取/写入基本数据类型的数据,例如boolean、int、float等数据。
        BufferedInputStream | BufferedOutputStream-->为输入流/输出流提供缓冲区过滤以提高读取速度,输入流缓冲区长度默认为2K字节,输出流缓冲区长度默认为512字节,可以通过入口参数指定缓冲区的大小,输出流write时只有当缓冲区满或者被调用flush()方法时系统才会将缓冲区中的数据写入输出流中。
        PushbackInputStream -->在读取数据的时候可以预读若干字节,或者说可以将已经读取的若干字节“退回”到输入流中。
        (用于需要读取某个指定byte(序列)之前的数据的情况,当检测到这个byte(序列)后读取完成并通过unread方法将这个序列"退回"到输入流中,当下一次试图读取数据的时候就会检测到已经到达结尾)
        LineNumberInputStream -->可以在数据读取中记录读取的行数。
        (LineNumberInputStream是被反对使用的,从JDK1.1中开始更倾向于使用LineNumberReader)
        PrintStream -->提供基本打印输出方法。
    ByteArrayInputStream | ByteArrayOutputStream -->实现了从内存字节数组输入/输出的功能。Java的多线程通信常常利用内存缓冲区进行。例如,一个线程查询数据库,一个线程查询结果,那么这两个线程就是利用缓冲区进行通信。
    SequenceInputStream -->用于将多个输入流连接到一个输入流。程序访问输入流序列时,可以使程序的效率得到提高。
    (当调用read函数时,如果读到一个substream的结尾就关闭这个流继续从下一个substream的开始位置读)
    StringBufferInputStream -->数据源为字符串的输入流
    (StringBufferInputStream是被反对使用的,从JDK1.1中开始更倾向于使用StringReader来以String为参数创建stream)
    ObjectInputStream | ObjectOutputStream-->用于对象操作序列化的输入/输出流类。(直接将Object传入输出流/直接从输入流中读取Object)
    (ObjectInputStream类有以InputStream为参数的构造方法,通过ObjectOutputStream类进行输出的类必须实现Serializable接口)
Reader -->字符流输入的抽象类
    BufferedReader-->读取输入流到缓冲区,以提高读取速度
    (此类有以Reader为参数的构造方法)
        LineNumberReader -->会在数据读取过程中记录读取的行数,行号从0递增。
        (此类中的setLineNumber(int)并不会真的改变流中字符串的顺序,只会改变getLineNumber()返回的值)
    CharArrayReader -->读取内存中的字符数组
    InputStreamReader -->读取字节流并转换为字符流(是InputStream类与Reader类之间的桥梁)
    (此类有以InputStream为参数的构造方法)
        FileReader-->用于文件系统的输入
    FilterReader -->过滤流的抽象类
    (此类有以Reader为参数的构造方法)
        PushbackReader -->在读取数据的时候可以预读下一个字节
    PipedReader -->用于进行管道方式的输入。建立输入流管道连接到输出流
    StringReader -->数据源为字符串的输入流
Writer -->字符流输出的抽象类
    BufferedWriter -->将字符数据写入缓冲区,以提高写出速度
    (此类有以Writer为参数的构造函数。此类有一个newLine()用于写出一个与平台有关的换行符,因为并不是所有平台都是"\n"作为换行符)
    CharArrayWriter -->将字符数组数据写出到内存
    OutputStreamWriter-->将字符流转换成字节流输出(是Writer类和OutputStream类之间的桥梁)
    (此类有以OutputStream为参数的构造方法)
        FileWriter-->用于文件系统的输出
    FilterWriter -->过滤输出流的抽象类
    (此类有以Writer为参数的构造方法,暂时没有实现子类)
    PipedWriter -->用于管道方式的输出。建立输出流管道连接到输入流
    StringWriter -->数据源为字符串的输入流(基于StringBuffer)
    PrintWriter -->将格式化对象写入文本输出流,实现了PrintStream中的所有方法
    (此类有以File为参数的构造方法,此类有以Writer为参数的构造方法)

参考:

《JAVA程序设计》
《Java语言程序设计》
http://docs.oracle.com/javase/6/docs/api/
https://www.ibm.com/developerworks/cn/java/j-lo-javaio/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值