A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jackwang 中级黑马   /  2015-3-20 10:13  /  1002 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


1、IO流
按流向划分:
        输入流: InputStream  Reader
        输出流: OutputStream Writer

按处理的数据划分:
        字节流:InputStream OutputStream
        字符流:Reader Writer

2、四大体系下的具体子类:

        InputStream  【read(),read(byte[]),read(byte[],off,len),close(),available() --->读到文件末尾返回值为-1 】

                |---FileInputStream  文件字节输入流
                |---BufferedInputStream         带缓冲区的字节输入流


        OutputStream 【write(int),write(byte[]),write(byte[],off,len),close(),flush()】

                |---FileOutputStream  文件字节输出流
                |---BufferedOutputStream        带缓冲区的字节输出流


        Reader       【read(),read(char[]),read(char[],off,len),close()        --->读到文件末尾返回值为-1 】

                |---BufferedReader        带缓冲区的输入流 【String readLine()--->读到文件末尾返回值为空】
                                |----LineNumberReader 带缓冲和行号的字符输入流

                |---InputStreamReader  字节字符转换输入流
                                |---FileReader                文件字符输入流 【getLineNubmer(),setLineNumber(int)】


        Writer       【write(int),write(char[]),write(char[],off,len),write(String),write(String,off,len),flush(),close()】

                |---BufferedWriter        带缓冲区的输出流 【newLine()---->跨平台的换行符输出】
                |---OutputStreamWriter        字节字符转换输出流
                                |---FileWriter                文件字符输出流

3、各个类的功能及特点:

        普通流:FileInputStream , FileReader , FileOutputStream ,FileWriter ,

        功能增强流(装饰流、包装流):BufferedInputStream , BufferedOutputStream ,BufferedReader ,BufferedWriter,
                LineNumberReader
                【 这类流在创建对象时需要传入一个普通流,他们会对这些普通流对象加缓冲,增强该对象的功能 】

        转换流(关联流、字节字符关联流):InputStreamReader ,OutputStreamReader
                【 这类流在创建对象时需要传入一个字节流对象,他们将字节流转成字符流(或着是将字节流包装成字符流),可以
                作为字符流来使用】

4、两大特殊设备:键盘(标准输入设备)和控制台(显示器、屏幕、标准输出设备)
               
                读入:InputStream in = System.in ;//获得键盘读入流
                               
                                一次从键盘上可以读取多行的字符流对象的创建:
                                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                               

                写出:OutputStream out = System.out ; //获得控制台写出流
                               
                                高效的输出字符流对象的创建:
                                BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));


        System.in,System.out 都是字节流对象。且都是静态成员。
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马