该文章描述了一种避免读取时阻塞。它提供了代码片段,您可以按我在注释中指出的进行修改。
import java.io.*;import java.util.concurrent.Callable;public class ConsoleInputReadTask implements Callable<String> { public String call() throws IOException { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("ConsoleInputReadTask run() called."); String input; do { System.out.println("Please type something: "); try { // wait until we have data to complete a readLine() while (!br.ready() ) { Thread.sleep(200); } input = br.readLine(); } catch (InterruptedException e) { System.out.println("ConsoleInputReadTask() cancelled"); return null; } } while ("".equals(input)); System.out.println("Thank You for providing input!"); return input; }}
您可以直接使用此代码,也可以编写一个新的可关闭的InputStream类,以结束本文介绍的逻辑。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)