diff --git a/launcher-package/build.sbt b/launcher-package/build.sbt index 98c88901a..a387fece7 100755 --- a/launcher-package/build.sbt +++ b/launcher-package/build.sbt @@ -117,12 +117,7 @@ val launcherPackage = (project in file(".")). val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(file)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() @@ -153,12 +148,7 @@ val launcherPackage = (project in file(".")). val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(macosUniversalTar)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() @@ -175,12 +165,7 @@ val launcherPackage = (project in file(".")). val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(linuxX86Tar)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() @@ -197,12 +182,7 @@ val launcherPackage = (project in file(".")). val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(linuxAarch64Tar)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() @@ -219,12 +199,7 @@ val launcherPackage = (project in file(".")). val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(windowsZip)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() @@ -458,12 +433,7 @@ def downloadUrl(uri: URI, out: File): Unit = val input = connection.getInputStream val writer = new java.io.BufferedOutputStream(new java.io.FileOutputStream(out)) try { - val buffer = new Array[Byte](8192) - var bytesRead = input.read(buffer) - while (bytesRead != -1) { - writer.write(buffer, 0, bytesRead) - bytesRead = input.read(buffer) - } + input.transferTo(writer) } finally { input.close() writer.close() diff --git a/main/src/main/scala/sbt/internal/InstallSbtn.scala b/main/src/main/scala/sbt/internal/InstallSbtn.scala index cb1acb627..22c2ad27f 100644 --- a/main/src/main/scala/sbt/internal/InstallSbtn.scala +++ b/main/src/main/scala/sbt/internal/InstallSbtn.scala @@ -110,14 +110,7 @@ private[sbt] object InstallSbtn { try { val os = new FileOutputStream(path.toFile) try { - val result = new Array[Byte](1024 * 1024) - var bytesRead = -1 - def impl(): Unit = { - bytesRead = inputStream.read(result) - if (bytesRead > 0) os.write(result, 0, bytesRead) - } - impl() - while bytesRead > 0 do impl() + inputStream.transferTo(os) } finally os.close() } finally inputStream.close() private def getShell(term: Terminal): String = {