반응형
출처
http://stackoverflow.com/questions/7872846/how-to-read-from-standard-input-non-blocking
자바에서 표준 입력을 non-blocking으로 읽는 방법?
long end=System.currentTimeMillis()+60*10;
InputStreamReader fileInputStream=new InputStreamReader(System.in);
BufferedReader bufferedReader=new BufferedReader(fileInputStream);
try
{
while((System.currentTimeMillis()<end) && (bufferedReader.readLine()!=null))
{
}
bufferedReader.close();
}
catch(java.io.IOException e)
{
e.printStackTrace();
}
저는 600밀리초 안에 읽기 위해 위에처럼 시도하였습니다만 bufferedReader가 blocking되어 readline에서 읽기가 되지 않습니다. 제발 도와주세요.
----
5 개의 답변 중 1개의 답변만 추려냄.
역자주 : available() 메소드가 Java 1.5에는 없어서 ready() 메소드를 사용하여 문제를 해결하였습니다.
long end=System.currentTimeMillis()+60*10;
InputStreamReader fileInputStream = new InputStreamReader(System.in);
BufferedReader bufferedReader = new BufferedReader(fileInputStream);
try {
while ((System.currentTimeMillis() < end)) {
if (bufferedReader.ready()) {
System.out.println(bufferedReader.readLine());
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
반응형
'Java' 카테고리의 다른 글
CentOS6 gradle 3.4.1 설치 스크립트 (0) | 2019.06.20 |
---|---|
Java에서 double과 int를 비교하는 것이 유효합니까? (0) | 2018.04.26 |
Hive에서 레코드를 지우거나(delete) 갱신하는(update) 방법 (0) | 2018.03.31 |
uber jar는 무엇입니까? (0) | 2017.09.05 |
Calendar 객체와 Esper의 EQL 관계에 관한 질문. (0) | 2014.07.15 |