我一直在尝试制作一个显示文件索引的java 服务器。我正在创建一个 SocketServer 并将其连接到一个端口。然后创建一个充当客户端的 Socket,并创建一个连接到客户端套接字输出流的 PrintWriter。如果我将页面硬编码到 PrintWriter,一切都会正常,但是当我尝试逐行读取文件并将其发送到 PrintWriter 时,不会显示任何内容。
package com.github.masonnoyce;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Date;
import java.io.File;
import java.nio.file.Files;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class AServer
{
public static void main (String[] args) throws Exception
{
AServer server = new AServer();
int portNumber = 8080;
//create server socket and say that it is running
final ServerSocket myServer = new ServerSocket(portNumber);
System.out.println("I have Connected To Port " + portNumber);
boolean running = true;
while(running)
{
//See if anyone connects
try(Socket client = myServer.accept())
{
server.sendPage(client);
}
catch(IOException e)
{
System.out.println("Something went wrong streaming the page");
System.exit(1);
}
}
try
{
myServer.close();
}
finally
{
System.out.println("Server Is now closed");
}
}
}
现在我知道服务器应该在一个线程上运行,从技术上讲它目前永远无法退出,并且不需要一些导入。我现在并不担心这个。我只需要弄清楚为什么 PrintWriter 在浏览器上呈现 html 时不喜欢使用文件。我创建了一个调试 PrintWriter,它写入一个文件来测试我是否有正确的文件位置并且它可以使用它。
尚方宝剑之说
相关分类