Java无法访问的代码

时间:2013-11-25 13:32:30

标签: java

我创建一个线程(服务器)从输入(System.in)读取字符串并输出到客户端,当我尝试关闭流 我得到这个错误:当我调用此函数时无法访问的代码closeStream()这里的代码请帮助:

import java.io.*;
public class ThreadWrite extends Thread{
        private PrintWriter output;
        private BufferedReader inputServer;
        private final boolean test=true;
        public ThreadWrite(PrintWriter out) {
            output = out;
            inputServer = new BufferedReader(new InputStreamReader(System.in));
        }

        public void run(){
            String send;
            while(test){
                System.out.print("Server:");
                try {
                    send = inputServer.readLine();
                    output.println(send);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            closeStream();
        }

        public void closeStream() throws Exception{
            inputServer.close();
            output.close();
        }


}

需要你的帮助

5 个答案:

答案 0 :(得分:2)

while(test)总是返回true,因此无法访问while循环(closeStream();)后面的语句。

答案 1 :(得分:1)

您永远不会将boolean test更改为false ,而您不能(自最终确定)因此您永远不会从while循环移出。

Java

答案 2 :(得分:1)

您将test声明为final,因此无法更改其值并保持true

所以在while条件内只剩下true并且没有办法,那就是结束(除了异常等)。因此无法到达 while之后的行

答案 3 :(得分:0)

测试是一个真实的最终变量。你永远不会离开

while(test)

环。

答案 4 :(得分:0)

您已在closeStream()之外提及while loop且条件始终为true且您的while循环中没有任何语句可以将其分解并达到closeStream()方法。