zoukankan      html  css  js  c++  java
  • java

    1.概念:

      IO流用来处理设备之间的数据传输

      java对数据的操作是通过流的方式

      java用于操作流的类都在IO包中

      流按流向分为两种:输入流,输出流

      流按操作类分为两种:

        字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的

        字符流:字符流只能操作纯字符数据,比较方便

    2.IO流常用父类

      字节流的抽象父类:

        InputStream

        OutputStream

      字符流的抽象父类

        Reader

        Writer

    3.IO程序书写

      使用前,导入IO包的类

      使用时,进行IO异常处理

      使用后,释放资源

    FileInputStream:

      read() 一次读取一个字节

     

      read()方法读取的是一个字节,为什么返回是int,而不是byte

      因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时间遇到11111111,它是byte类型的-1,我们程序读到-1就会停止。所以在读取的时候用int类型接收,如果1111111会在其前面补上24个0,那么byte类型的-1就变成int类型的255了,这样可以保证整个数据读完,而结束标记的-1就是int类型

      write() 一次写出一个字节

    io流核心:

    字节数组拷贝available()方法

      int read(byte【】 b) 一次读一个字节数组

      write (byte【】 b) 一次写出一个字节数组

      available() 获取读的文件所有的字节个数

      有可能会内存溢出

    定义小数组:

      write(byte【】 b)

      write(byte【】 b,int off, int len)写出有效的字节个数。 off 索引, len要写的个数

    推荐:

    close():

      具备刷新的功能,在关闭流之前,就会先刷新一次缓冲区,将缓冲区的字节全部刷新到文件上,再关闭,close方法刷完之后就不能写了

    flush():

      具备刷新的功能,刷完之后还可以继续写

     

     

     流标准处理异常:

  • 相关阅读:
    C#中 ??、 ?、 ?: 、?.、?[ ] 问号各组合含义
    ASP.NET Core MVC配置差异(3.0和2.X)
    vs code搭建Django环境
    解决真机编译出现System.DllNotFoundException: 'libmono-native.so'错误都方法
    选择器
    Web.Config配置
    读Xamarin文档记录
    【前端自动化】Gulp的使用(一):安装gulp
    关于angularJS绑定数据时自动转义html标签
    【记录】两年程序生涯的点滴与反思
  • 原文地址:https://www.cnblogs.com/pengranxindong/p/10008013.html
Copyright © 2011-2022 走看看