Stream自行总结的技巧,如果设置一个字节数组接收一个未知长度的流Stream
来源:互联网 发布:ubuntu下php环境搭建 编辑:程序博客网 时间:2024/05/22 01:34
一般情况下我们接受到一个流Stream stm,但是由于流是一段一段的读取的,所以无法读取到stm的Length属性;
Question:如果都读不到为什么要有这个属性呢?
Because:
1.因为有SetLength方法,可以手动指定Length属性
2.StreamReader或FileStream他们可能获取到一个已知的流或byte[]或文本,那么此时这个流的长度可能就是已知可获取的,所以此时可通过Length获取到流的长度
Question:当要将流写入byte[]时如何知道一个流的长度以便确定byte[]数组的长度呢?
Skill:Stream有个ReadByte()的方法,是一个字节一个字节的向后读取,然后返回刚刚读取的字节的内容;由于C#中byte的大小范围是0-255(JAVA是-127~128),所以当读到流结尾时返回一个-1;
知道了ReadByte()的方法就可以通过一个死循环来不停向后读取获得内容;
要想得到长度也可以通过一个计数器累加获得;
Suggestion:需要对应长度的字节数组时可以考虑先用List<Byte>集合接受再ToArray()
But:感觉这样一个一个游标式向后读循环了太多次,所以性能可能下降很多,具体有空再测试,所以如果确定是文本内容那么可以直接使用StreamReader读取就好,性能会高不少
0 0
- Stream自行总结的技巧,如果设置一个字节数组接收一个未知长度的流Stream
- 建立一个长度未知的数组
- Java数组元素查找 接收并打印一个未知长度的数组
- C# Stream 未知长度文件的 对拷
- Java之数据流DataInput(Output)Stream 和 字节数组流 ByteArrayInput(Output) Stream的嵌套
- 接收一个未知长度的字符串(人为输入,长度不定)
- Java的IO之字节流(stream)
- stream.js :一个新的JavaScript数据结构
- C#流Stream的使用总结
- 一个stream试验-pre_instantiation_setup/post_instantiation_setup 模仿piner的全库stream试验
- java 的stream流
- stream getline相关的总结
- 构建一个实时播放的TCP协议的stream实例
- 一个学习和配置darwin stream server的网址
- 求一个整数stream的sum, avg, median
- JDK8中Array转换成stream的一个坑
- 给定一个未知长度的整数流,如何随机选取一个数?
- 【二分查找】在一个长度未知的数组中查找一个数,返回其下标,时间复杂度O(logn)
- 自定义drawable
- Hibernate - is not mapped
- 解决phpmyadmin上传文件大小的限制
- Android Virtual Devices
- Adaboost 算法的原理与推导
- Stream自行总结的技巧,如果设置一个字节数组接收一个未知长度的流Stream
- 《学生在线学习系统》开发心得
- ffmpeg tutorial1
- 二、使用find和xargs
- 黑马程序员——Java基础---接口和多态
- 小胖说事12--------iOS App集成Apple Pay教程(附示例代码)
- 进程和线程的联系和区别 ,抽象类与接口的区别
- 用Struts2写的第一个"Hello,World!"
- PHP中定义数组的三种方式