Java中while循环后代码未运行

时间:2013-10-13 17:14:04

标签: java

我遇到了最随机的问题。简单地说,我希望迭代一个while循环,直到满足某个条件,当它不符合时,显然应该运行循环后的代码。由于某种原因,while循环后面的代码没有运行......这是我的代码:

while (true) 
        {
            Socket ClientSocketConnection = serverSocket.accept();
            System.err.println("We have established a connection with a client!");
            System.out.println(" ");

            ServerInput = new BufferedReader(new InputStreamReader(ClientSocketConnection.getInputStream()));
            ServerOutput = new DataOutputStream(ClientSocketConnection.getOutputStream());

            while((StringInput = ServerInput.read()) != -1)
            {
              //Things get done here

            }

            //methodBeingUsed is a string here

            switch (methodBeingUsed){
                case "GET":
                    GET();
                    break;
                case "POST":
                    POST(sBuffer.toString());
                    break;
            }

            System.err.println("The Connection will now Terminated!");
            ServerOutput.close();
            ServerInput.close();
            ClientSocketConnection.close();
        }
    }

基本上switch语句由于某种原因没有被运行?当我调试代码时,我从ServerInput变量到达最后一个-1,代码就停止了。停止并且不继续while(true)循环中的所有其他内容。真的不确定为什么会这样......

1 个答案:

答案 0 :(得分:3)

这显然是阻塞方法:ServerInput.read(),它意味着它等待它实际读取的东西。如果它没有读取任何东西,它只是在等待。您可能未正确连接到现有连接。