`
younglibin
  • 浏览: 1193161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java stream

 
阅读更多

经常在使用网络数据传输的时候,小数据使用 打包传输,大数据使用stream传输,以前一直不明白  到底什么是stream传输,课本学习的时候,老师给的解释是,stream 就想 水管子一样,接上去就有水流出来,比一次去拿一桶好点,也快点,对于计算机也减少了 数据请求的交互。虽然这样子想,但是针对技术到底这个stream是怎么被传输的呢,我们还可以使用水管这个,我们接个水管到水池,如果水池有水,水管子就会往外流,但是外边的有东西把水接到拿走,否则水管看到没人要水,那就不给了,那么外边节水的东西,就是哦我们的  byte[] 了,水管子往byte中灌水(read(byte[]))管多少byte自己说了算,byte就循环去那,这样子就拿到水了,什么时间不拿了?

1.byte不拿了

       byte 自己退出,你把节水的东西拿走了,水管子不能浪费水啊,自然就不流了

2.水池说没水了

      水池说水了,那水管子知道了,都没水了,还浪费水管子干吗,水管自然也没了,都没水管子,还接个毛水啊,撤吧!

 

看段测试代码自己体会一下:

public static void main(String[] args) throws IOException {
		byte[] b = new byte[4];
		byte[] tmp = new byte[20];
		InputStream is = System.in;
		int n = 0, offset = 0;
		while ((n = is.read(b, offset, 4 - offset)) != -1) {
			if ((n + offset) >= 4) {
				break;
			}
			offset = n;
			System.out.println("curent read count : " + n + "\t" + b.length);
		}
		System.out.println("--\t" + is.read(tmp));
	}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics