• InputStream字节输入流


    1、字节输入流——硬盘中数据写出到内存中供解析使用:

    根据文件存储原理,8位二进制组成为一个字节,换算后的数值在0-127则查询ASCII码表,其他则查询系统默认表,如简体中文查询GBK表;

    2、FileInputStream文件字节输入流: 

     

    3、FileInputStream使用实例:

    其中,每次调用read方法指针后移一位;最后返回值为-1,继续读一直是-1;

    当长度即元素数量已知时候(点size() 或者 点length() )使用for循环,有索引的可以使用for each 也可以用普通for循环(初始化表达式; 步进表达式; 布尔表达式),

    没有索引的时候只能使用增强for循环及for each;

    当长度即元素数量未知时候,使用while循环,括号里是布尔表达式即循环条件即循环结束条件;

    若while括号中的条件布尔表达式不用变量接收再判断的话:

    运行结果:

    其中,while括号中的条件布尔表达式不用变量接收直接进行判断的话,会少值,因为每次执行FileInputStream方法时候,指针都在后移一位;

    前者使用变量接收,输出打印变量,只执行了一次read()方法;

    后者执行了两次read()方法;

    4、InputStream从硬盘写出数据到内存然后读取的原理:

     

    其中红色指针一直在向后移动;

    windows系统和linux系统的结束标记不一样,但通过java虚拟机jvm处理返回到程序里面都是-1;

    5、InputStream一次读取多个字节:

    其中,数组存放读取的字节,缓冲作用;

    数组的值一直在动态变化;

    重复操作使用循环优化:

    其中,因为不知道 FileInputStream fis 对象的大小(length 或者 size),使用while循环;

    运行结果:

    除了字符串的值,后面还有很多空格,创建的长度为1024(kb)的数组,转换为字符串时候产生的后面没有用到空格;

    优化:使用String的另外一个带索引截取固定长度的构造方法:

  • 相关阅读:
    电脑分屏鼠标移不到另一个电脑上
    jquery datetimepicker 配置参数
    js获取前n天或者后n天的天数
    mysql查看变量
    Underscore _.template 方法使用详解
    sql优化
    echart图表demo
    jquery预加载的几种例子
    树莓派搭建服务器
    Thymeleaf标签学习
  • 原文地址:https://www.cnblogs.com/wmqiang/p/10786799.html
Copyright © 2020-2023  润新知