栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Scala while遇到问题

Scala while遇到问题

# scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
    val result = new ByteArrayOutputStream();
    var buffer: Array[Byte] = new Array[Byte](1024)
    var length = inputStream.read(buffer)
    while (false){
      println("false,false,false")
    }
    
    while ((length = inputStream.read(buffer)) != -1) {
      println("::::: " + (length != -1))
      println("length =" + length + " | (length != -1) = " + (length != -1))
      length = inputStream.read(buffer)
      result.write(buffer, 0, length);
    }

输出

::::: false
length =-1 | (length != -1) = false
Exception in thread "main" java.lang.IndexOutOfBoundsException
	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:151)
	at com.bl.bigdata.cdp.cdpstream.MonitorApplication$.send_http_request(MonitorApplication.scala:36)
	at com.bl.bigdata.cdp.cdpstream.MonitorApplication$.main(MonitorApplication.scala:11)
	at com.bl.bigdata.cdp.cdpstream.MonitorApplication.main(MonitorApplication.scala)

while ((length = inputStream.read(buffer)) != -1)在scala中没有生效,问题原因还需要再查看.

需要修改为

    val buffer: Array[Byte] = new Array[Byte](1024)
    var length = inputStream.read(buffer)
    while (length != -1) {
      println("::::: " + (length != -1))
      result.write(buffer, 0, length);
      length = inputStream.read(buffer)
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号