Java 如何中断线程进行控制台读取?

Java 如何中断线程进行控制台读取?,java,input,concurrency,console,Java,Input,Concurrency,Console,我有这样的问题:程序应该在单独的线程中从控制台读取信息,当我想关闭这个线程时,输入仍然处于活动状态。中断线程后如何关闭输入?(程序在EclipseIDE上运行) publicstaticvoidmain(最终字符串[]args){ 对于(int i=0;i{ 试一试{ ChatRunner.answerFromConsole=ChatRunner.reader.readLine(); }捕获(最终ioe异常ioe){ // } }); input.start(); //一些治疗 input.in

我有这样的问题:程序应该在单独的线程中从控制台读取信息,当我想关闭这个线程时,输入仍然处于活动状态。中断线程后如何关闭输入?(程序在EclipseIDE上运行)

publicstaticvoidmain(最终字符串[]args){
对于(int i=0;i<10;i++){
ChatRunner.reader=新的BufferedReader(
新的InputStreamReader(System.in、ChatRunner.charset));
//一些治疗
最终线程输入=新线程(()->{
试一试{
ChatRunner.answerFromConsole=ChatRunner.reader.readLine();
}捕获(最终ioe异常ioe){
//
}
});
input.start();
//一些治疗
input.interrupt();
}
}

如果我只是关闭BufferedReader,我就不能在循环的下一步中使用它。

close
System.in
。close
System.in
 public static void main(final String[] args) {


    for (int i = 0; i < 10; i++){
       ChatRunner.reader = new BufferedReader(
            new InputStreamReader(System.in, ChatRunner.charset));

        //some treatment

        final Thread input = new Thread(() -> {

            try {
                ChatRunner.answerFromConsole = ChatRunner.reader.readLine();
            } catch (final IOException ioe) {
                //
            }

        });

        input.start();
        // some treatment


        input.interrupt();
    }
}