zoukankan      html  css  js  c++  java
  • 【IO流】FileInputStream FileOutputStream BufferInputStream BufferOutputStream

     FileInputStream

    • IO流用来处理设备之间的数据传输。
    • Java对数据的操作是通过流的方式。
    • Java用于操作流的类都在IO包中。
    1. 流按流向分为两种:输入流,输出流。
    2. 流按操作类型分为两种:

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

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

    IO流常用父类

       字节流的抽象父类: InputStream 、OutputStream

       字符流的抽象父类: Reader 、Writer

    IO程序书写规则  使用前,导入IO包中的类 使用时,进行IO异常处理

                     使用后,释放资源

    FileInputStream fis = new FileInputStream("xxx.txt");    //创建流对象
    FileInputStream fis = new FileInputStream("xxx.txt");    //创建流对象
    int b;
    while((b = fis.read()) != -1) {                //将每次读到的字节赋值给b并判断是否是-

    System.out.println(b); }
    fis.close();                             //关闭流

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

     因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,

    有可能在读到中间的时候遇到111111111,而11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,

    所以在读取的时候用int类型接收,如果11111111会在其前面补上24个0凑足4个字节,

    那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型

         * 00010100 00100100 01000001 11111111 0000000
         * 
         * 10000001    byte类型-1的原码
         * 11111110    -1的反码
         * 11111111    -1的补码
         * 
         * 00000000 00000000 00000000 11111111      //这是 int 类型的 255 

     FileOutputStream

  • 相关阅读:
    ADSL自动更换IP的方法
    css框架 一个可控性强的css+xhtml页面布局生成器。
    Linux环境配置之LAMP搭建(源码安装)
    PHP小技巧
    Google首页电吉他源代码下载
    Jquery 插件可以用来操作定界窗,将在定界窗内选取的项目放到父窗口内
    今天見鬼了
    今天闲着没事去公园玩了一下,随手拍了几张
    PHP利用PHPMailer组件的Gmail发信能力发送电子邮件
    端午节放假去台湾中部山区野餐时照的
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/11346092.html
Copyright © 2011-2022 走看看