• IO流之字节流


    IO流分类

    按照数据流向

    输入流:从外界(键盘、网络、文件…)读取数据到内存
    输出流:用于将程序中的数据写出到外界(显示器、文件…)
    数据源 目的地 交通工具

    按照数据类型

    字节流:主要用来处理字节或二进制对象。

    字节输入流(InputStream)
    字节输出流 (OutputStream)

    字符流:主要用来处理字符、字符数组或字符串。

    字符输入流(Reader)
    字符输出流(Writer)

    字节流和字符流的区别:

    读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
    处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

    选取:只要是处理纯文本数据,就优先考虑使用字符流,除此之外都使用字节流。

    OutputStream(抽象类)
    FileOutputStream
    构造方法
      FileOutputStream(String name) 创建一个向name文件中写数据的输出文件流
      FileOutputStream(File file) 创建一个向file文件中写数据的输出文件流
      FileOutputStream(File file, boolean append) 创建一个向file文件中追加数据的输出文件流
    成员方法
      public void write(int b) 写一个字节
      public void write(byte[] b) 写一个字节数组
      public void write(byte[] b,int off,int len) 写一个字节数组的一部分
      void close() 关闭此文件输出流并释放与此流有关的所有系统资源

    InputStream
    FileInputStream

    FileInputStream的构造方法
      FileInputStream(File file) 创建一个从file读取数据的输入流
      FileInputStream(String name) 创建一个从name文件读取数据的输入流

    FileInputStream的成员方法

      int read() 一次读取一个字节
      1.读取一个字节并且返回给调用者,返回的是读取的内容
      2.将指针移动到下一个位置
      3.读取到文件末尾返回-1
      int b = 0;
      while((b = is.read()) != -1) {
        System.out.print((char)b);
      }
      int read(byte[] b) 一次读取一个字节数组
      1.读取一个字节数组到定义好的数组中,返回的是实际读取的长度
      2.将指针移动到下一个位置
      3.读取到文件末尾返回-1
      int len = 0;
      byte[] bys = new byte[5];
      while((len = is.read(bys)) != -1) {
        System.out.print(new String(bys, 0, len));
      }
      int read(byte[] b, int off, int len) 一次读取一个字节数组的一部分
      void close() 关闭此文件输入流并释放与此流有关的所有系统资源

    注意:
    关于输入流的一些注意事项
    1.输出流文件不一定要存在,会自动创建 ,输入流文件一定要存在,否则会抛出异常 抛出FileNotFindException
    2.计算机如何识别中文? 中文在GBK编码表中使用两个字节表示,两个字节的第一个字节是负数,
    计算机它首先读取一个字节,发现该字节是负数,它会自动等待下一个字节来组合

  • 相关阅读:
    【html】页面制作规范文档
    【jquery】blockUI 弹出层
    前端攻城师所要掌握的知识和技能
    【html】edm 邮件制作指南
    【css】教你如何写出高效整洁的 css 代码——css优化
    前端开发神器notepad++以及zen coding神级插件
    百度统计流量研究院——了解互联网行业基本数据分布和趋势
    【css】我的 css 框架——base.css
    通过扩展方法 链式方法 为MVC 3 视图添加验证
    使用正则表达式抓取博客园列表数据
  • 原文地址:https://www.cnblogs.com/lrxvx/p/9408421.html
Copyright © 2020-2023  润新知