# 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)
}



