zoukankan      html  css  js  c++  java
  • 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的另外一个带索引截取固定长度的构造方法:

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/wmqiang/p/10786799.html
Copyright © 2011-2022 走看看