【发布时间】:2019-09-28 03:58:18
【问题描述】:
我有一个 EchoServer,用于在我的计算机上运行和提供静态本地 HTML 文件。如果文件不存在,它将发出错误。我想知道如何在这段代码中提供本地文件路径?
我几乎是这门语言的新手,不知道它是如何工作的。
这是我尝试在其中运行服务器的主要课程。
def main(args: Array[String]) {
val server = new ServerSocket(9999)
while(true) {
try {
serve(server)
//Maybe the filepath goes here?
}catch {
case e: Exception => ("File not found")
}
}
}
虽然这两个是输入的内容
object EchoServer {
def read_and_write(in: BufferedReader, out:BufferedWriter): Unit = {
out.write(in.readLine())
out.flush()
in.close()
out.close()
}
def serve(server: ServerSocket): Unit = {
val s = server.accept()
val in = new BufferedReader(new InputStreamReader(s.getInputStream))
val out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream))
read_and_write(in, out)
s.close()
}
因此,如果我让它正常运行,它会读取任何现有的 HTML 文件,如果它在我的本地计算机上不存在,则不输出错误。
【问题讨论】:
-
您可以打开一个 FileInputStream 到您的文件并将其从套接字流复制到
out。但是这样是不是太低级了?你不想至少使用 HTTP 协议吗? -
我该怎么做呢?抱歉还是新手。
-
你可以使用
Files.copy,见stackoverflow.com/questions/4741419/…
标签: scala