BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String message = in.readLine();
The above code waits infinitely until the user enter the data from the command line and presses enter key.
The following code can provide a timeout to the above waiting (it works fine).
But is there a
SIMPLER WAY to provide
timeout for above waiting, something like
setSoTimeout(int milliseconds) method in DatagramSocket, Socket and ServerSocket classes*?*
http://www.coderanch.com/t/232213/threads/java/implement-timeout-threads
=>
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;
public class test{
private String str = "";
TimerTask task = new TimerTask(){
public void run(){
if( str.equals("") ){
System.out.println( "you input nothing. exit..." );
System.exit( 0 );
}
}
};
public void getInput() throws Exception{
Timer timer = new Timer();
timer.schedule( task, 10*1000 );
System.out.println( "Input a string within 10 seconds: " );
BufferedReader in = new BufferedReader(
new InputStreamReader( System.in ) );
str = in.readLine();
timer.cancel();
System.out.println( "you have entered: "+ str );
}
public static void main( String[] args ){
try{
(new test()).getInput();
}catch( Exception e ){
System.out.println( e );
}
System.out.println( "main exit..." );
}
}