IO流

IO流是什么:流是一种有顺序,有起点有重点的字节集合,是对数据传输的总称或抽象,即设备之间的数据的传输称为流。流的本质是数据传输。

        IO是流是干什么用的:流是用来传输数据的。

                IO流什么时候用:请求服务器的,设备之间传输数据,读写数据都用流。

      介绍完流的概念以及作用简单的总结一下io流

1.  IO流主要用于硬盘、内存、键盘等处理设备上的数据操作。

2. 根据处理数据的不同可分为字符流(即处理字符数据)和字节流(即处理除字符以外的所有数据当然字节流也可以处理字符)

3. 跟了流向不同可以分为:输出流和输入流

常用IO流结构图


                                   |-àBufferReader

                         |-àReader -à|

     |------à字符流------|             |à|InputStreamReader-àFileReader

     |                |          |-àBufferWriter

  |-àWriter-à|

                                 |-àOutputStreamWriter  -àFileWriter

---  |                                 |--àFileInputStream

     |                 |àInputStream-à|

                                       |-àFilterInputStream-àBufferedInputStream

     |-------à字节流------|                

                                        |-àFileOutputStream

                      |àOutputStreamà|

                                        |-àFliterOutputStream-àBufferedOutputStream

                                        

                   



 

1.      字节流与字符流的区别:

1.      读写单位不同, 字节流读取的时候,读一个字节就返回一个字节(8bit);字符流使用字节流读到一个或者多个字节,先去查询指定的编码表,将查到的字符返回。       

2.      处理对象不同,字节流可以处理所有的类型的数据(图片,mp3\mp4等),字符流只能处理字符数据(即纯文本数据)

2.输入流和输出流

      对输入流只能进行读操作(即读取内存中的数据),对输出流只能进行写操作(即把内存中的数据写到硬盘上)

 

3.输入流InputStream

        1.是所有输入字节流的父类,抽象类

        2.ByteArrayInputStream、StringBufferInputStream、FileInputStream 基本的介质流,它们分别从Byte数组、StringBuffer和 本地文件中读取数据。

       3.PipedInputStream是从其他的线程公用的管道中读取数据。

      4.ObjectInputSteam 和所有的FilterInputStream的子类都是装饰流

4.输出流OutputStream

       1.所有字节输出流的父类,抽象类

       2.ByteArrayOutputStream、FileOutputStream两种基本的介质流,它们分别重byte数组和本地文件中写数据。

       3.PipedOutputStream是向其他线程公共的管道中写入数据

      4.ObjectOutputStream 、FliterOutputStream的子类都是装饰流

 总结:输入流:InputStream、Reader 从文件中读到程序中

       输出流:OutputSream、writer从程序中写到文件中。

5.节点流

     直接与数据源相连,读入或者读出。

      数据源----------à--------à程序

                节点流

       常用的节点流:

           父类  InputStreamOutputStream Rrader Writer

           文件  FileInputStreamFileOutputStream FileReader FileWriter 对文件进行处理的节点流

          

           数组 
           ByteArrayInputStream,ByteArrayOutputStream,ChraArrayReader.CharArrayWriter

          字符串

          StringReader StringWriter

          管道

          PipedInputStream,PipedOutputStream,PipedReader.PipedWriter对管道进行处理的节点流

6.处理流

   处理流和节点流一块使用,在节点流的基础上,在套一层,套接在节点流上的就是处理流,比如BufferReader 处理流的构造中总是带一个其他流对象作为参数。一个流对象经过其他流的多次包装,称为流的链接。

 常用的处理流

1.      缓冲流:BufferedInputStreamBufferedOutputStream,BufferedReader,BufferedWriter

增加缓冲功能,避免频繁读写硬盘

2.      转换流:InputStreamReader,OutputStreamWriter实现字节流与字符流之间的转换

3.      数据流:DataInputSream.DataOutputStream提供基础数据类型的写入或者读出

InputStreamReader(inputStream)   //通过构造函数初始化,使用的是本系统默认的编码表GBK

InputStreamWriter(InputStream,String charSet); //通过该构造函数初始化,可以指定编码表。

OutputStreamWriter(OutputStream); //通过该构造函数初始化,使用的是本系统默认的编码表GBK

OutputStreamwriter(OutputStream,String charSet); //通过该构造函数初始化,可以指定编码表。


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值