wang kai
wang kai

Reputation: 1747

Why Files.write can't use Array[Byte]()?

I have this code:

val socket=new ServerSocket(25)
val client=socket.accept()
val inputStream=client.getInputStream
var dataBuffer=new Array[Byte](4096)
inputStream.read(dataBuffer)
Files.write("",dataBuffer)

Files.write need a Byte array,and I have give it a Byte array,so why I got error at last line:

Type mismatch,expected:Iterable[_<:CharSequence],actual:Array[Byte]

inputStream.read also need a Byte array param,it can use dataBuffer,so why the next line got a error?How to fix it?Thanks!

Upvotes: 0

Views: 47

Answers (2)

user7460598
user7460598

Reputation: 44

import java.net.ServerSocket
import java.nio.file.{Files, Paths}
object Test1 {
  def main(args: Array[String]): Unit = {
    val socket = new ServerSocket(9999)
    val client = socket.accept()
    val inputStream = client.getInputStream
    var dataBuffer = new Array[Byte](4096)
    inputStream.read(dataBuffer)
    Files.write(Paths.get("/home/eiffel/a.txt"), dataBuffer)
  }
}

Upvotes: 0

talex
talex

Reputation: 20436

If you use java.nio.file.Files you should use Path as first parameter.

val b: Array[Byte] = Array()
Files.write(Paths.get(""), b)

Upvotes: 3

Related Questions